From: tril2632 at hotmail dot com Operating system: Linux Debian PHP version: 5.0.3 PHP Bug Type: MySQLi related Bug description: Exception doens't catch connection error
Description: ------------ Hello The problem is that exception are not catching connection problems when instanciate the mysqli class. Reproduce code: --------------- <?php /* Create custom exception classes */ class ConnectException extends Exception {} class QueryException extends Exception {} class example_mysqli extends mysqli { function __construct($adr, $login, $mdp, $nom_bd) { try{ /* Pass all arguments passed to the constructor on to the parent's constructor */ $args = func_get_args(); // OK if([EMAIL PROTECTED]::__construct($adr, $login, $mdp, $nom_bd)) if(!parent::__construct($adr, $login, $mdp, $nom_bd)) { throw new ConnectException(mysqli_connect_error(), mysqli_connect_errno()); } /* Throw an error if the connection fails */ if(mysqli_connect_error()){ throw new ConnectException(mysqli_connect_error(), mysqli_connect_errno()); } } catch (Exception $e) { throw new ConnectException(mysqli_connect_error(), mysqli_connect_errno()); } } function query($query) { $result = parent::query($query); if(mysqli_error($this)){ throw new QueryException(mysqli_error($this), mysqli_errno($this)); } return $result; } } try { $my = new example_mysqli('loclhost','root', '', 'test'); $result = $my->query("SELCT NOW()"); } catch(Exception $exception) { echo "Connection Error\n"; } catch(QueryException $exception) { echo "Query Error\n"; } /* Handle exceptions that we weren't expecting */ catch(Exception $exception) { echo "Who was that masked exception?\n"; } $result->close(); $my->close(); ?> Expected result: ---------------- it should print me "connection Error" Actual result: -------------- it always return this error : mysqli::mysqli() [function.mysqli]: Unknown MySQL server host 'loclhost' (11001) in c:\wamp\www\wmi\mysqli.php on line 16 Connection Error With exception php error should NOT be display only the message in the "catch" should appear ! -- Edit bug report at http://bugs.php.net/?id=31745&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=31745&r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=31745&r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=31745&r=trysnapshot51 Fixed in CVS: http://bugs.php.net/fix.php?id=31745&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=31745&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=31745&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=31745&r=needscript Try newer version: http://bugs.php.net/fix.php?id=31745&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=31745&r=support Expected behavior: http://bugs.php.net/fix.php?id=31745&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=31745&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=31745&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=31745&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=31745&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=31745&r=dst IIS Stability: http://bugs.php.net/fix.php?id=31745&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=31745&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=31745&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=31745&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=31745&r=mysqlcfg