sql >> Databáze >  >> RDS >> Mysql

Chyba synchronizace příkazů PHP

V mysqli::query Pokud použijete MYSQLI_USE_RESULT, všechna následující volání vrátí chybu Příkazy nejsou synchronizované, pokud nezavoláte mysqli_free_result()

Při volání více uložených procedur můžete narazit na následující chybu:„Příkazy jsou nesynchronizované; tento příkaz nyní nelze spustit“. K tomu může dojít i při použití funkce close() na výsledném objektu mezi voláními. problém, nezapomeňte zavolat funkci next_result() na objektu mysqli po každém volání uložené procedury. Viz příklad níže:

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

Doufám, že to pomůže



  1. Databázový model pro online průzkum. Část 2

  2. SQL se připojí

  3. Nejúčinnější způsob vkládání řádků do databáze MySQL

  4. Automatizované testování procesu upgradu pro PostgreSQL