Re: PDO Exception Handling Question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux