Bug #52414 [Opn->Fbk]: warning catch by php before PDOException
| From: | cmb@php.net | Date: | Fri, 15 May 2015 12:23:04 +0000 |
| Subject: | Bug #52414 [Opn->Fbk]: warning catch by php before PDOException | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-192676@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=52414&edit=1
ID: 52414
Updated by: cmb@php.net
Reported by: draeli at draeli dot com
Summary: warning catch by php before PDOException
-Status: Open
+Status: Feedback
Type: Bug
Package: PDO Core
Operating System: Windows XP SP3
PHP Version: 5.3.3
Block user comment: N
Private report: N
New Comment:
This issue (warning + exception) appears to have been fixed in the meantime (at least as of PHP
5.4.19). Can you confirm, please?
Previous Comments:
------------------------------------------------------------------------
[2010-10-02 16:16:05] draeli at draeli dot com
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.
------------------------------------------------------------------------
[2010-09-27 11:10:50] uw@php.net
Not MySQL specific, if at all a bug. Second opinion needed.
------------------------------------------------------------------------
[2010-08-26 11:15:07] uw@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 https://bugs.php.net/bug.php?id=52414&edit=1