Problem with PDO exceptions
| From: | Daniel Carrera | Date: | Sat, 07 Mar 2009 19:44:15 +0000 |
| Subject: | Problem with PDO exceptions | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-46052@lists.php.net to get a copy of this message | ||
Hello,
I have MySQL 5.1 and PHP 5.2. For some reason PDO is not throwing exceptions when I give it a broken SQL query. For example:
try {
$stmt = $db->prepare("SELECT * FROM foobar WHERE 1");
} catch(PDOException $e) {
error($e->getMessage());
}
In this example there is no table called 'foobar', so this should give an error. Yet, it doesn't.
Any ideas why that would happen? Possible causes I can think of:
1) PDO decide to "emulate" prepared statements.
2) PDO has some sort of "errors off" setting.
3) My try-catch statement is wrong.
I doubt it's (1) because I have MySQL 5.1 and PDO is only supposed to emulate prepared statements for MySQL versions prior to 4.1. And phpinfo says that I'm running pdo_mysql version 5.1.30.
Btw, $db->exec() and $db->query() also fail to produce an error when I give them a broken query. That's another reason why I think that the problem is elsewhere.
Any ideas?
Thank you very much for your help.
Best,
Daniel.