Edit report at http://bugs.php.net/bug.php?id=52414&edit=1

 ID:                 52414
 Updated by:         u...@php.net
 Reported by:        draeli at draeli dot com
 Summary:            warning catch by php before PDOException
-Status:             Assigned
+Status:             Feedback
 Type:               Bug
 Package:            PDO related
 Operating System:   Windows XP SP3
 PHP Version:        5.3.3
 Assigned To:        mysql
 Block user comment: N

 New Comment:

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


Previous Comments:
------------------------------------------------------------------------
[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

Reply via email to