I hope by now you figured this out, but you have to use $dbh->setAttribute() to enable exception handling for anything but the initial object creation. Worse yet, as of 2007/04/20 the return values of setAttribute are reversed. It returns TRUE on failure and FALSE on success. "Rodney Topor" <r.topor@xxxxxxxxxxxxxxx> wrote in message news:Pine.LNX.4.64.0604030708070.2078@xxxxxxxxxxxxxxxxxxxxxxx >I did some more checking. If there is an error in the "new PDO(...)" > constructor call, then it does get into the catch block and print an > appropriate error message. (Good. Perhaps I was previously mistaken.) > > But if there is an error in the "SELECT" query (either syntax error, or > reference to missing table), then no exception is raised, and control > just continues in the try block with a null result from the query. > Is this the intended behaviour? > > On Sun, 2 Apr 2006, chris smith wrote: > >> On 4/2/06, Rodney Topor <r.topor@xxxxxxxxxxxxxxx> wrote: >>> I've just started using PDO with PHP 5.1 and MySQL 5.0. Everything >>> seems to work fine, except for one issue with the following example >>> from the PHP manual. >>> >>> <?php >>> try { >>> $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); >>> foreach ($dbh->query('SELECT * from FOO') as $row) { >>> print_r($row); >>> } >>> $dbh = null; >>> } catch (PDOException $e) { >>> print "Error!: " . $e->getMessage() . "<br/>"; >>> die(); >>> } >>> ?> >>> >>> If an error occurs in creating the new PDO instance, or in issuing the >>> PDO query, then a PDOException should be raised. But nothing is ever >>> printed. I've tried running this script, forcing an exception, both >>> from the command line and from the server. But nothing is ever >>> printed. What do I have to do to see the printed string in the >>> catch-block? >> >> Do you mean it doesn't print anything or it doesn't get into the catch >> block? >> >> ie it prints "Error!:<br/>" or it doesn't get into that section at all? >> >> -- >> Postgresql & php tutorials >> http://www.designmagick.com/ >> -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php