Edit report at http://bugs.php.net/bug.php?id=52414&edit=1
ID: 52414 User updated by: draeli at draeli dot com Reported by: draeli at draeli dot com Summary: warning catch by php before PDOException -Status: Feedback +Status: Open Type: Bug Package: PDO related Operating System: Windows XP SP3 PHP Version: 5.3.3 Block user comment: N New Comment: I'm ok with you, "The fatal error is standard PDO behaviour.", that's right but my problem isn't this message but 'warning' who appear before as say in my first message. Previous Comments: ------------------------------------------------------------------------ [2010-09-27 11:10:50] u...@php.net Not MySQL specific, if at all a bug. Second opinion needed. ------------------------------------------------------------------------ [2010-08-26 11:15:07] u...@php.net I do not understand. The fatal error is standard PDO behaviour. Its because you do not catch the exception thrown by PDO. You get the very same error, for example, with SQLite: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [14] unable to open database file' in /home/nixnutz/php/php-src/branches/PHP_5_3/pdo.php:2 Stack trace: #0 /home/nixnutz/php/php-src/branches/PHP_5_3/pdo.php(2): PDO->__construct('sqlite:/opt/dat...') #1 {main} thrown in /home/nixnutz/php/php-src/branches/PHP_5_3/pdo.php on line 2 ------------------------------------------------------------------------ [2010-07-23 11:29:04] draeli at draeli dot com Description: ------------ I catch all PHP error to do my own behavior error but with this case (test out of the other code), when server is down, PHP catch an error (here a Warning) and only after catch a PDOException. I think that an error because error message or same in two cases and too, if an Exception is launch, why do an PHP error ? Test script: --------------- <?php $arrDriverOption = array(); $arrDriverOption[ \PDO::MYSQL_ATTR_INIT_COMMAND ] = 'SET NAMES UTF8'; $arrDriverOption[ \PDO::ATTR_TIMEOUT ] = 2; new \PDO('mysql:host=localhost;port=3307;dbname=mydb', 'root', 'r', $arrDriverOption); Expected result: ---------------- Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu. ' in C:\Serveur\Apache2\htdocs\test\__web\index2.php:5 Stack trace: #0 C:\Serveur\Apache2\htdocs\test\__web\index2.php(5): PDO->__construct('mysql:host=loca...', 'root', 'r', Array) #1 {main} thrown in C:\Serveur\Apache2\htdocs\test\__web\index2.php on line 5 Actual result: -------------- Warning: PDO::__construct() [pdo.--construct]: [2002] Une tentative de connexion a échoué car le parti connecté n'a pa (trying to connect via tcp://localhost:3307) in C:\Serveur\Apache2\htdocs\test\__web\index2.php on line 5 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu. ' in C:\Serveur\Apache2\htdocs\test\__web\index2.php:5 Stack trace: #0 C:\Serveur\Apache2\htdocs\test\__web\index2.php(5): PDO->__construct('mysql:host=loca...', 'root', 'r', Array) #1 {main} thrown in C:\Serveur\Apache2\htdocs\test\__web\index2.php on line 5 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52414&edit=1