Ik ben bezig met PDO en ben nu gestuit op een vreemd probleem zodra ik het errmode attribute instel op exception. Ik wil met onderstaande code de tabellen ophalen uit de database en vervolgens de inhoud van deze tabellen inlezen. Zolang ik de errmode attribute niet instel gaat het prima en wordt alles weergegeven. Zodra ik deze wel instel krijg ik ineens de melding dat de gewenste tabel (die juist is opgehaald dmv show tables) niet bestaat. Ik wil wel gebruik maken van exceptions voor mijn error handler. Waar kan het dus fout gaan?
Dit is de melding die ik krijg met Exception ingesteld waarbij tabel 'paths' de eerste tabel is die in de lijst staat.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| try { $db = new PDO($dsn, $this->config["user"], $this->config["pass"]); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql["tables"] = "SHOW TABLES"; $sql["contents"] = "SELECT * FROM `:root`"; $tables = $db->prepare($sql["tables"]); $contents = $db->prepare($sql["contents"]); $tables->execute(); foreach($tables->fetchAll(PDO::FETCH_COLUMN) as $table){ $contents->execute(Array(":root" => $table)); print "Tabel ".$table."<br />"; print_r($contents->fetchAll(PDO::FETCH_COLUMN)); print "<br /><br />"; } } catch(PDOException $e){ return $this->Error("Database Error Occurred. ".$e->getMessage(), 300, SYSTEM_ERROR); } |
Dit is de melding die ik krijg met Exception ingesteld waarbij tabel 'paths' de eerste tabel is die in de lijst staat.
code:
1
| Database Error Occurred. SQLSTATE[42S02]: Base table or view not found: 1146 Table 'registry.'paths'' doesn't exist (300) |
telefoontoestel