Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lỗi lệnh ngoài đồng bộ hóa PHP

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để ngăn chặn việc đưa SQL vào PHP?

  2. Thủ tục lưu trữ MySQL

  3. MySQL DROP CONSTRAINT DUY NHẤT

  4. Làm thế nào để gọi một thủ tục được lưu trữ MySQL từ bên trong mã PHP?

  5. Trên khóa trùng lặp bỏ qua?