Ik ben momenteel bezig met het schrijven van een beheersysteem en maak voor het eerst gebruik van PDO. Nu wil ik een insert in een prepared statement doen, maar er gaat iets fout en ik snap niet waardoor dat komt, ik gebruik nagenoeg dezelfde code als in de manual.
Een stukje van mijn code...
In de construct doe ik het volgende...
Vervolgens binnen de functie insert():
Dit geeft de error:"Fatal error: Call to a member function bindParam() on a non-object in /www/htdocs/pfitzea/nieuw/admin/includes/classes/datawrapper.class.php on line 127".
$insert is geen object, daar zit de fout. Ik doe echter nagenoeg hetzelfde als op http://us2.php.net/manual/en/pdo.prepared-statements.php
Als ik var_dump($this->dbcon) doe dan geeft hij een PDO resource terug. Ik kan ook wel data fetchen, dus de instantie van PDO lijkt mij in orde.
Wat doe ik fout?
Een stukje van mijn code...
In de construct doe ik het volgende...
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| function __construct() { if(!$this->dbcon) { try { $this->dbcon = new PDO (DB_CONTYPE.':dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASSWORD); } catch (PDOException $e) { //error something echo $e->getMessage(); } } elseif (!is_a($this->dbcon, PDO)) { // error something? return false; } } |
Vervolgens binnen de functie insert():
PHP:
1
2
3
4
5
6
7
8
9
10
11
| $sql = "INSERT INTO " . $this->getTableName() . " (" .join(", ", array_keys($values)) . ") VALUES (" .join(", ", $fieldsformatted) . ")"; //INSERT INTO (name, position, listed) VALUES (:parentid, :name, :position, :listed) $insert = $this->dbcon->prepare($sql); foreach($values as $k => $v) { $insert->bindParam (":".$k, $v); } |
Dit geeft de error:"Fatal error: Call to a member function bindParam() on a non-object in /www/htdocs/pfitzea/nieuw/admin/includes/classes/datawrapper.class.php on line 127".
$insert is geen object, daar zit de fout. Ik doe echter nagenoeg hetzelfde als op http://us2.php.net/manual/en/pdo.prepared-statements.php
Als ik var_dump($this->dbcon) doe dan geeft hij een PDO resource terug. Ik kan ook wel data fetchen, dus de instantie van PDO lijkt mij in orde.
Wat doe ik fout?