|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2010-07-23 11:29 UTC] 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
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 08 14:00:01 2025 UTC |
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