Mysql
 sql >> база данни >  >> RDS >> Mysql

Грешка при несинхронизирани команди на PHP

В 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();
?>

Надявам се това да помогне



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. брой за всяко присъединяване - оптимизация

  2. Използвайте композитен първичен ключ като външен ключ

  3. Защо вмъкването на MySQL InnoDB е толкова бавно?

  4. Изсипете mysql база данни в резервно копие на обикновен текст (CSV) от командния ред

  5. Как да реша кога да използвам десни съединения/леви съединения или вътрешни съединения или как да определя коя таблица е от коя страна?