|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull Requests
Pull requests:
HistoryAllCommentsChangesGit/SVN commits
[2013-05-03 15:59 UTC] johannes@php.net
-Status: Open
+Status: Assigned
-Assigned To:
+Assigned To: mysql
[2017-10-24 08:03 UTC] kalle@php.net
-Status: Assigned
+Status: Open
-Assigned To: mysql
+Assigned To:
[2021-08-23 14:31 UTC] cmb@php.net
-Status: Open
+Status: Duplicate
-Assigned To:
+Assigned To: cmb
[2021-08-23 14:31 UTC] cmb@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Dec 03 08:00:02 2025 UTC |
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)