Bug #52414 [Fbk->NoF]: warning catch by php before PDOException

From: Date: Sun, 24 May 2015 04:22:17 +0000
Subject: Bug #52414 [Fbk->NoF]: warning catch by php before PDOException
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-192846@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:       php-bugs@lists.php.net
 Reported by:      draeli at draeli dot com
 Summary:          warning catch by php before PDOException
-Status:           Feedback
+Status:           No Feedback
 Type:             Bug
 Package:          PDO Core
 Operating System: Windows XP SP3
 PHP Version:      5.3.3
 Private report:   N

 New Comment:

No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.


Previous Comments:
------------------------------------------------------------------------
[2015-05-15 12:23:03] cmb@php.net

This issue (warning + exception) appears to have been fixed in the meantime (at least as of PHP
5.4.19). Can you confirm, please?

------------------------------------------------------------------------
[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


Thread (7 messages)

« previous php.bugs (#192846) next »