«Команды не синхронизированы», если я снова использую mysqli::query() после вызова хранимой процедуры, дающей результатыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 «Команды не синхронизированы», если я снова использую mysqli::query() после вызова хранимой процедуры, дающей результаты

Сообщение Anonymous »

У меня в базе данных есть хранимая процедура, которая возвращает все записи в таблице:

Код: Выделить всё

CREATE PROCEDURE showAll()
BEGIN
SELECT * FROM myTable;
END
SP работает так, как ожидалось. Но если я вызываю его в PHP-скрипте, а затем снова пытаюсь запросить базу данных, это всегда терпит неудачу:

Код: Выделить всё

// $mysqli is a db connection

// first query:

if (!$t = $mysqli->query("call showAll()"))
die('Error in the 1st query');

while ($r = $t->fetch_row()) {
echo $r[0] . "
"; // this is ok
}

$t->free(); // EDIT (this doesn't help anyway)

// second query (does the same thing):

if (!$t = $mysqli->query("SELECT * from myTable"))
die('Error in the 2nd query'); // I always get this error

while ($r = $t->fetch_row()) {
echo $r[0] . "
";
}
Примечательно, что если я поменяю местами два запроса (т. е. вызову хранимую процедуру в конце), это будет работать без каких-либо ошибок. Закрытие() результата перед вторым запросом не помогает.
Какие подсказки?

Код: Выделить всё

mysqli::error()
:

«Команды не синхронизированы; сейчас вы не можете запустить эту команду».


Подробнее здесь: https://stackoverflow.com/questions/499 ... sults-givi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»