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" <[EMAIL PROTECTED]> wrote in message 
>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 <[EMAIL PROTECTED]> 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

Reply via email to