Melvin Cowznofski: Falsche Fehlermeldung bei MySQL Verbindung via PDO

Beitrag lesen

Hallo,

ich stehe gerade etwas ratlos vor einer falschen Fehlermeldung, deren Zustandekommen ich mir nicht erklären kann. Ich stelle die Verbindung zur MySQL Datenbank via PDO her. Dazu verwende ich die beiden PHP Ressourcen "db_config.php" und "PDO_connect.php", die folgendermaßen aufgebaut sind:

db_config.php:

<?php  
   $host     = 'localhost';  
   $dbname   = 'db_01';  
   $username = 'user_db_01';  
   $password = 'user01';  
?>

PDO_connect.php:

<?php  
   $dsn      = 'mysql:host='.$host.';dbname='.$dbname.';charset=utf8';  
   $timezone = 'SET time_zone = "+00:00"';  
   try  
      {  
         $db =  new PDO($dsn, $username, $password);  
         $db -> SetAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
         $db -> exec($timezone);  
      }  
   catch(PDOException $e)  
      {  
         echo $e -> getMessage();  
         die();  
      }  
?>

Wenn ich diese beiden Ressourcen nun mit einem include_once(); in einer anderen einbette, wird wie erwartet die Verbindung zur DB korrekt aufgenommen. Soweit, so gut.

Wenn ich jetzt in der 'db_config.php' _absichtlich_ den Namen der DB falsch schreibe, zB. "foo" - und so eine DB gibt es bei mir nicht - dann würde ich als Fehlermeldung der PDOException folgendes erwarten:

SQLSTATE[HY000] [1049] Unknown Database 'foo'

Stattdessen lese ich aber:

SQLSTATE[HY000] [1044] Access denied for user 'user_db_01'@'localhost' to database 'foo'

Und diese Fehlermeldung erwarte ich eigentlich nur dann, wenn User oder Passwort nicht stimmen. Kann mir bitte jemand sagen, wieso ich trotzdem diese Meldung bekomme und nicht die von mir erwartete?!

Vielen Dank im Voraus!

Mit lieben Grüßen

Melvin Cowznofski

--

Melvin Cowznofski
What – me worry?