|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2017-04-10 09:39 UTC] lusc at jiedaibao dot com
Description: ------------ PDOStatement::execute trigger an error when lost connection. I have already set $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); bug an Warning error is trigger , like: Warning: PDOStatement::execute: MySQL server has gone away in ... Expected result: ---------------- just throw exception Actual result: -------------- warning and exception all trigger PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 07:00:01 2025 UTC |
example: ``` error_reporting(E_ALL); ini_set('display_errors', 'on'); try { $pdo = new PDO('mysql:dbname=qiye;host=100.73.13.5;charset=utf8', 'myroot', 'Hsql1234'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt1 = $pdo->prepare('SELECT * FROM auth limit 1'); $stmt1->execute(); var_dump($stmt1->fetchAll()); sleep('30'); // stop the mysql server at this time $stmt1 = $pdo->prepare('SELECT * FROM jdb_company_info limit 1'); $stmt1->execute(); var_dump($stmt1->fetchAll()); } catch (Throwable $e) { var_dump($e->__toString()); } ``` output: ``` array(0) { } Warning: PDOStatement::execute(): MySQL server has gone away in /mnt/g/workspace/workspace/qiye/tests/web/test.php on line 21 Warning: PDOStatement::execute(): Error reading result set's header in /mnt/g/workspace/workspace/qiye/tests/web/test.php on line 21 string(240) "PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away in /mnt/g/workspace/workspace/qiye/tests/web/test.php:21 Stack trace: #0 /mnt/g/workspace/workspace/qiye/tests/web/test.php(21): PDOStatement->execute() #1 {main}" ```