Команды не синхронизированы при использовании mysqli и подготовленных операторов - PullRequest
0 голосов
/ 22 сентября 2010

Я пытаюсь сделать несколько звонков, но 2-й запрос не выполняется с помощью команды «Команды не синхронизированы; Вы не можете выполнить эту команду сейчас 'ошибка.

Код выглядит так:

$sql="call listReport();";
$results = mysqli_query($link,$sql); 
$arr=array();
while($row=mysqli_fetch_array($results)) {
    array_push($arr,$row);
}
mysqli_free_result($results);

// then I have this

// but this fails, giving the above mentioned error
$stmt = @mysqli_prepare($link,"select ........") or die(mysqli_error($link));
@mysqli_stmt_bind_param($stmt, 's', $s);
@mysqli_stmt_execute($stmt);
@mysqli_stmt_bind_result($stmt, $s);
@mysqli_stmt_fetch($stmt);
@mysqli_stmt_close($stmt);

Я на самом деле использовал mysqli_free_result($results);, но не работает. Что мне не хватает?

1 Ответ

1 голос
/ 22 сентября 2010

Проблема в том, что хранимые процедуры mysql могут возвращать различные наборы результатов, поэтому вы должны использовать mysqli_multiquery

"Ошибка хранимых процедур PHP 5 и MySQL 5"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...