|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
 PatchesPull Requests
Pull requests: 
 HistoryAllCommentsChangesGit/SVN commits              [2013-10-03 11:35 UTC] cf0hay at gmail dot com
  [2014-01-01 12:30 UTC] felipe@php.net
 
-Package: PDO related
+Package: PDO MySQL
  [2020-10-28 16:19 UTC] nikic@php.net
  [2020-10-28 16:19 UTC] nikic@php.net
 
-Status: Open
+Status: Closed
 | |||||||||||||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 01:00:01 2025 UTC | 
Description: ------------ Using PDO with mysqlnd driver. PDO instance was asked to throw exceptions, but calling fetch() after the TCP connection broke does not throw an exception, it just emits a warning instead, "Empty row packet body". The server is located on a different computer on the network, cannot use unix socket to reach it. Test script: --------------- $conn = new PDO( 'mysql:host=192.168.1.2;dbname=somedb;charset=utf8', 'somedbuser', 'somedbpass', array( PDO::ATTR_PERSISTENT => false, PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_STRINGIFY_FETCHES => false, PDO::ATTR_AUTOCOMMIT => true, PDO::MYSQL_ATTR_INIT_COMMAND => "SET time_zone = '+00:00'", PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => false, PDO::MYSQL_ATTR_DIRECT_QUERY => false, PDO::MYSQL_ATTR_FOUND_ROWS => false, ) ); $res = $conn->query(" any query which gives back a lot of rows "); while($row = $res->fetch(PDO::FETCH_ASSOC)){ //during this loop runs, terminate the connection with something, like iptables var_export($row); } var_export($row); Expected result: ---------------- PDOStatement::fetch() should throw an exception as the server connection has gone away (trying to do a new PDO::query() after does throw an exception with that error message). Actual result: -------------- The script above just emits a warning and finishes the loop returning false the very same way as if there were no more rows left from the query.