В mysqli::query Ако използвате MYSQLI_USE_RESULT всички следващи извиквания ще връщат грешка Команди не са синхронизирани, освен ако не извикате mysqli_free_result()
Когато извиквате множество съхранени процедури, можете да се сблъскате със следната грешка:"Командите не са синхронизирани; не можете да изпълните тази команда сега". Това може да се случи дори когато използвате функцията close() на резултатния обект между извиквания. За да коригирате проблемът, не забравяйте да извикате функцията next_result() на обекта mysqli след всяко извикване на съхранена процедура. Вижте примера по-долу:
<?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();
?>
Надявам се това да помогне