ID:               35333
 User updated by:  camka at email dot ee
 Reported By:      camka at email dot ee
-Status:           Bogus
+Status:           Open
 Bug Type:         MySQLi related
 Operating System: WinXP, Linux
 PHP Version:      5CVS-2005-11-22 (snap)
 New Comment:

Cannot repeat the problem using C mysql API. Looks like still the
mysqli extension error.

http://bugs.mysql.com/bug.php?id=15181


Previous Comments:
------------------------------------------------------------------------

[2005-11-23 09:30:27] [EMAIL PROTECTED]

Report that to Mysql, it is not PHP problem.

------------------------------------------------------------------------

[2005-11-22 23:15:51] camka at email dot ee

but still, if i use selects in multi_query:
$s -> multi_query("select 1;select 2");

and then 

$s -> query("select 3");

i get more understandable error

- 2014 - Commands out of sync; you can't run this command now

Why then the server goes away in case of non-select queries?
Out of sync error would be less confusing.

------------------------------------------------------------------------

[2005-11-22 19:42:49] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

After executing mysqli_multi_query you have first process the
resultsets before sending any another statement to the server,
otherwise your socket is still blocked.

Please note that even if your multi statement doesn't contain SELECT
queries, the server will send result packages containing errorcodes (or
OK packet) for single statements. 

------------------------------------------------------------------------

[2005-11-22 16:07:36] camka at email dot ee

may be related to bug #31668

------------------------------------------------------------------------

[2005-11-22 16:06:59] camka at email dot ee

Description:
------------
After running several "non-select" queries with mysqli::multi_query()
it's impossible to run mysqli::query() method with some "select" query,
the mysqli::error says "MySQL server has gone away".

If iterate through all the results of mysqli::multi_query() using
mysqli::next_result(), then the program won't issue the "gone away"
problem and the following mysqli::query() runs as expected.

tried with the latest cvs snapshot.
PHP Version 5.0.6-dev Nov 22 2005 10:22:22 

On one machine it needs to hit browser's "refresh" button to get an
error, on other machine the error comes every single program run.

Reproduce code:
---------------
<?php
$s = new mysqli('localhost', '******', '*******', '*****');
$s -> multi_query('drop temporary table if exists z1; create temporary
table z1(u int);');

// if uncomment the following line, the script works as expected
// while ($s->next_result());

echo "- ",$s -> error,"<br>";
$s -> query("SELECT count(*) from z1");
echo "- ",$s -> error,"<br>";
$s->close();
?>qu

Expected result:
----------------
- 
-
(two empty errors)

Actual result:
--------------
- 
- MySQL server has gone away


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=35333&edit=1

Reply via email to