Edit report at https://bugs.php.net/bug.php?id=64763&edit=1
ID: 64763 Updated by: johan...@php.net Reported by: ihanick at gmail dot com Summary: unbuffered queries connection problems are not handled by mysqlnd -Status: Open +Status: Assigned Type: Bug Package: MySQL related Operating System: CentOS release 6.4 PHP Version: master-Git-2013-05-02 (snap) -Assigned To: +Assigned To: mysql Block user comment: N Private report: N Previous Comments: ------------------------------------------------------------------------ [2013-05-02 17:31:51] ihanick at gmail dot com Description: ------------ Partially finished unbuffered query for mysql doesn't return any errors. The problem persists for all current versions of mysqlnd but everything find with old libmysqlclient code for all mysql extensions: mysql, mysqli, pdo-mysql. If I have 100k rows in query and connection dropped at 50k point, there is no simple way to see this error in application and handle the problem. Test script: --------------- 1) create a big table to have several seconds for select * from table execution time 2) run php script 3) kill connection from php to mysql or kill mysqld <?php error_reporting(E_ALL); $link = mysql_connect('localhost', 'root', ''); mysql_select_db('test') or die('Could not select database'); // Performing SQL query $query = 'SELECT * FROM x;'; $result = mysql_unbuffered_query($query) or die('Query failed: ' . mysql_error()); while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { } echo mysql_error($link) . PHP_EOL; Expected result: ---------------- Warning about connection problems and mysql_error should return Query failed: MySQL server has gone away Everything works correctly for old (non-mysqlnd) extension. Actual result: -------------- getting warning: Warning: Empty row packet body in /root/php5-trunk/test.php on line 10 But empty result for mysql_error($link) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=64763&edit=1