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.

try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    foreach ($dbh->query('SELECT * from FOO') as $row) {
    $dbh = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";

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

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

PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to