Development Tools Using PHP with MySQL Connecting PHP to MySQL Handling Exceptions

Why am I getting a warning on the webpage too?

When I put an invalid database in the PDO string, I get a warning displayed on the webpage, in addition to the echoed message.

Warning: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\htdocs\database.php on line 4
Could not connect to the database.

Randy only has the "Could not connect to the database message." Why?

My code is:

try {
    $db = new PDO("mysql:host=brokenhost;dbname=shirts4mike","root");
    var_dump($db);
} catch (Exception $e) {
    echo "Could not connect to the database.";
    exit;
}

It works fine with localhost instead of brokenhost.

1 Answer

Chris Shaw
Chris Shaw
26,629 Points

Hi Mai Lon Ross,

Instead of Exception it should be PDOException as that is what the PDO class will throw as it contains extra data for debugging, change that and it should only show your echo statement.

Hope that helps.

Hmm, when I change Exception to PDOException I still get the same output, with the Warning as well as the echoed statement.