<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';
/*
Die Verwendung von try/catch um den Konstruktor ist berechtigt, auch wenn
wir ERRMODE auf WARNING setzen, da PDO::__construct immer eine PDOException
auslöst, wenn die Verbindung fehlschlägt.
*/
try {
$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
echo 'Verbindung fehlgeschlagen: ' . $e->getMessage();
exit;
}
// Dies wird PDO veranlassen einen Fehler der Stufe E_WARNING anstelle einer
// Exception auszulösen (falls die Tabelle nicht existiert)
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>
Das oben gezeigte Beispiel erzeugt folgende
Ausgabe:
Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in
/tmp/pdo_test.php on line 18