#31668 [Opn]: multi_query works exactly every other time

From: Date: Sun, 23 Jan 2005 13:39:34 +0000
Subject: #31668 [Opn]: multi_query works exactly every other time
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-72695@lists.php.net to get a copy of this message
ID: 31668 User updated by: exaton at free dot fr Reported By: exaton at free dot fr Status: Open Bug Type: MySQLi related Operating System: WinXP PHP Version: 5CVS-2005-01-23 (dev) New Comment: OK, realised that of course the $SQL -> error is set (when it is set) right after multi_query() is called. So that should be : if ($SQL -> multi_query(...)) { do { ... } while (...); } else echo $SQL -> error; // (*) But it works out to exactly the same thing. I understand I would notice a difference only if I were looking out for SQL errors in intermediate queries sent by multi_query(), making those errors accessible with next_result() calls. Whatever -- N/A here as far as I can see. Previous Comments: ------------------------------------------------------------------------ [2005-01-23 14:26:43] exaton at free dot fr Description: ------------ Using PHP 5.0.4-dev WinXP snapshot from Jan 23 2005 10:14:07, running Apache 2.0.52 and MySQL 4.1.9 . I've seen other bugs possibly relating to this issue, e.g. http://bugs.php.net/bug.php?id=29272 or http://bugs.php.net/bug.php?id=28860 , but I think I have something more precise to describe. The querying works half the time anyway, so it's not an evident MySQL error. I find that when I run a MySQLi multi_query, the first time the results are perfectly correct, then on browser reload the multi-query fails with an SQL error pertaining to the query concatenation. Reload again, fine. Reload again, same error. Etc. I'm doing this : (table 'faq' is simply an AUTO_INCREMENT 'indx' field, then 'question' and 'answer' TEXT fields) : $SQL = new mysqli(/*...connection information...*/); $SQL -> multi_query(' SELECT indx FROM faq; SELECT question, answer FROM faq '); do { $res = $SQL -> store_result(); if ($SQL -> errno == 0) { while ($arr = $res -> fetch_assoc()) print_r($arr); $res -> free(); } else echo $SQL -> error; // (*) } while ($SQL -> next_result()); $SQL -> close(); So, a first time, I get a bunch of arrays from the first resultset : Array ( [indx] => 1 ) followed by the same number of arrays from the second resultset : Array ( [question] => This is a question [answer] => This is an answer ) And that is fine. Then, browser reload, and I get no arrays at all but a _single_ error instead, which I show with line (*) : "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; SELECT question, answer FROM faq' at line 1 " Browser reload, back to my nice arrays. Browser reload again, error message. It is _very_ rare that a same situation should occur twice in a row instead of the alternation. I've tried concatenating the queries onto a single line, even with no space at all behind the semicolon. All the same. So, despite my running MySQL 4.1.9, is this mysqli_multi_query() related, or is something up with the database server ? Thanks. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=31668&edit=1

« previous php.bugs (#72695) next »