Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile eseguire query mentre altre query senza buffer sono attive errore nel ciclo

Dopo aver recuperato tutti i risultati nel ciclo di esecuzione, dovresti ottenere il set di righe successivo e quindi chiudere il cursore prima di tentare di eseguire nuovamente la procedura memorizzata. Prova questo:

foreach($data_arr AS $key => $val){
    $values = $val;
    $stmt->execute();
    $res = $stmt->fetchAll();
    $stmt->nextRowset();   // NEW: Get the next rowset after fetching your results
    $stmt->closeCursor();  // NEW: Close the cursor
}

L'aggiunta davvero importante qui è la chiamata a nextRowSet() . Sotto il cofano, PDO sta restituendo un secondo insieme di righe a cui è necessario accedere prima di eseguire una seconda (e successiva) stored procedure sulla stessa connessione.