ID: 35203 Updated by: [EMAIL PROTECTED] Reported By: kristaps dot kaupe at itrisinajumi dot lv -Status: Closed +Status: Bogus Bug Type: MySQLi related Operating System: Gentoo Linux PHP Version: 5.0.5
Previous Comments: ------------------------------------------------------------------------ [2005-11-14 10:46:00] kristaps dot kaupe at itrisinajumi dot lv Ok, got the point. Additional $db->next_result() with $db->multi_query() was solution. My fault, sorry! ------------------------------------------------------------------------ [2005-11-13 18:40:19] [EMAIL PROTECTED] fixed status ------------------------------------------------------------------------ [2005-11-13 18:36:55] [EMAIL PROTECTED] When a stored procedure returns a resultset, MySQL returns at least two resultsets: first for the SELECT CALL inside the stored procedure. 2nd for the call of the stored procedure itself (2nd usually is only an OK or ERR packet) mysqli_query fetches only one resultset, the second is still on socket: subsequent mysqli_ calls will fail, cause the sockets is still blocked. Therefore you should use mysqli_next_result and mysqli_multi_query instead. ------------------------------------------------------------------------ [2005-11-13 16:33:03] kristaps dot kaupe at itrisinajumi dot lv Status change to "Open". ------------------------------------------------------------------------ [2005-11-13 15:55:15] kristaps dot kaupe at itrisinajumi dot lv Why I should use mysqli_multi_query()? Where is it documented, that I should use mysqli_multi_query() for stored procedures? But the following code with mysqli_multi_query() doesn't work either: ------- // $db is mysqli object if ($db->multi_query('CALL test_proc(1); CALL test_proc(1);')) { if ($result = $db->store_result()) { $res = $result->fetch_assoc(); print_r($res); $result->close(); } else echo '<br />No result!<br />'; $db->next_result(); if ($result = $db->store_result()) { $res = $result->fetch_assoc(); print_r($res); $result->close(); } else echo '<br />No result<br />'; } else echo '<br />'.$db->error.'<br />'; ----- Produces the following output: ----- Array ( [id] => 1 [txt] => test1 ) No result ----- (Expected was two identical results) ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/35203 -- Edit this bug report at http://bugs.php.net/?id=35203&edit=1