У меня есть хранимая процедура в моей базе данных, которая возвращает все записи в таблице:
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] . "<br>"; // 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] . "<br>";
}
Примечательно, что если я поменяю местами два запроса (т.е. я вызываю хранимую процедуру в конце), он работает без каких-либо ошибка. Для close () результат перед вторым запросом не помогает. Некоторые подсказки?
РЕДАКТИРОВАТЬ: mysqli :: error (): «Команды не синхронизированы; сейчас вы не можете запустить эту команду ».