nchristoph
Erfahrenes Mitglied
Hallo Zusammen,
folgendes Problem: Meine PDO Klasse streikt über Nacht.
Wenn ich jetzt das Objekt der Klasse erstelle und ausführe mit
Kriege ich folgende Fehlermeldung:
Zeile 37:
Ich hab keine Idee warum. Gestern hats noch funktioniert, heute wollte ich weiterprogrammieren und jetzt kommt die Fehlermeldung. Auch zurücksetzen auf eine frühere Version hat nicht geholfen. Am Server und auch Lokal dasselbe Problem.
Ich bin am Ende mit meinem Latein.
folgendes Problem: Meine PDO Klasse streikt über Nacht.
PHP:
<?php
class class_dbase {
private $dbhost = 'localhost';
private $dbuser = 'test';
private $dbname = 'root';
private $dbpass = '';
private $dbdriver = 'mysqli';
private $dbh;
private $error;
private $stmt;
public function __construct(){
// Set DSN
$dsn = $this->dbdriver.':host=' . $this->dbhost . ';dbname=' . $this->dbname;
// Set options
$options = array(
PDO::ATTR_DRIVER_NAME => $this->dbdriver,
PDO::ATTR_PERSISTENT => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL
);
// Create a new PDO instanace
try{
$this->dbh = new PDO($dsn, $this->dbuser, $this->dbpass, $options);
}
// Catch any errors
catch(PDOException $e){
$this->error = $e->getMessage();
}
}
public function query($query){
$this->stmt = $this->dbh->prepare($query); //Hier ist das Problem!!!
}
public function bind($param, $value, $type = null){
if (is_null($type)) {
switch (true) {
case is_int($value):
$type = PDO::PARAM_INT;
break;
case is_bool($value):
$type = PDO::PARAM_BOOL;
break;
case is_null($value):
$type = PDO::PARAM_NULL;
break;
default:
$type = PDO::PARAM_STR;
}
}
$this->stmt->bindValue($param, $value, $type);
}
public function execute(){
return $this->stmt->execute();
}
public function resultset(){
$this->execute();
return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
}
public function single(){
$this->execute();
return $this->stmt->fetch(PDO::FETCH_ASSOC);
}
public function rowCount(){
return $this->stmt->rowCount();
}
public function beginTransaction(){
return $this->dbh->beginTransaction();
}
public function endTransaction(){
return $this->dbh->commit();
}
public function cancelTransaction(){
return $this->dbh->rollBack();
}
public function debugDumpParams(){
return $this->stmt->debugDumpParams();
}
public function __destruct(){}
}
?>
Wenn ich jetzt das Objekt der Klasse erstelle und ausführe mit
PHP:
$db_conn = new class_dbase();
$sql = "SELECT pagetitle, divider, subtitle FROM cms_config";
/* $stmt = $db_conn->prepare($sql);
$stmt->execute();
$row = $stmt->fetch();*/
$db_conn->query($sql);
$db_conn->execute();
$row = $db_conn->single();
Kriege ich folgende Fehlermeldung:
Code:
Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\includes\class_dbase.php on line 37
Zeile 37:
PHP:
public function query($query){
$this->stmt = $this->dbh->prepare($query); //Hier ist das Problem!!!
}
Ich hab keine Idee warum. Gestern hats noch funktioniert, heute wollte ich weiterprogrammieren und jetzt kommt die Fehlermeldung. Auch zurücksetzen auf eine frühere Version hat nicht geholfen. Am Server und auch Lokal dasselbe Problem.
Ich bin am Ende mit meinem Latein.