W mysqli::query Jeśli użyjesz MYSQLI_USE_RESULT, wszystkie kolejne wywołania zwrócą błędy Niezsynchronizowane polecenia, chyba że wywołasz mysqli_free_result()
Podczas wywoływania wielu procedur składowanych możesz napotkać następujący błąd:„Polecenia nie są zsynchronizowane; nie można teraz uruchomić tego polecenia”. Może się to zdarzyć nawet w przypadku użycia funkcji close() w obiekcie wynikowym między wywołaniami. Aby naprawić problem, pamiętaj, aby wywołać funkcję next_result() obiektu mysqli po każdym wywołaniu procedury składowanej. Zobacz przykład poniżej:
<?php
// New Connection
$db = new mysqli('localhost','user','pass','database');
// Check for errors
if(mysqli_connect_errno()){
echo mysqli_connect_error();
}
// 1st Query
$result = $db->query("call getUsers()");
if($result){
// Cycle through results
while ($row = $result->fetch_object()){
$user_arr[] = $row;
}
// Free result set
$result->close();
$db->next_result();
}
// 2nd Query
$result = $db->query("call getGroups()");
if($result){
// Cycle through results
while ($row = $result->fetch_object()){
$group_arr[] = $row;
}
// Free result set
$result->close();
$db->next_result();
}
else echo($db->error);
// Close connection
$db->close();
?>
Mam nadzieję, że to pomoże