|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-01-28 21:24 UTC] tony2001@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 03 10:00:02 2025 UTC |
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(!@parent::__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 !