Trong mysqli ::query Nếu bạn sử dụng MYSQLI_USE_RESULT tất cả các lệnh gọi tiếp theo sẽ trả về lỗi Các lệnh không đồng bộ trừ khi bạn gọi mysqli_free_result ()
Khi gọi nhiều thủ tục được lưu trữ, bạn có thể gặp phải lỗi sau:"Lệnh không đồng bộ hóa; bạn không thể chạy lệnh này ngay bây giờ". Điều này có thể xảy ra ngay cả khi sử dụng hàm close () trên đối tượng kết quả giữa các lần gọi. vấn đề, hãy nhớ gọi hàm next_result () trên đối tượng mysqli sau mỗi lần gọi thủ tục được lưu trữ. Xem ví dụ bên dưới:
<?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();
?>
Tôi hy vọng điều này sẽ giúp ích