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

Kan ikke udføre forespørgsler, mens andre ubuffrede forespørgsler er aktive fejl i loop

Når du har hentet alle resultaterne i din eksekveringsløkke, bør du hente det næste rækkesæt og derefter lukke markøren, før du forsøger at udføre den lagrede procedure igen. Prøv dette:

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
}

Den virkelig vigtige tilføjelse her er opfordringen til nextRowSet() . Under motorhjelmen returnerer PDO endnu et rækkesæt som du skal have adgang til, før du udfører en anden (og efterfølgende) lagret procedure på den samme forbindelse.



  1. Tjek, om der findes en tabel i Oracle

  2. Hvordan krypteres adgangskoden i Oracle?

  3. Udfør denne timers forespørgsel i PostgreSQL

  4. Sådan migrerer du SQL Server-job fra en SQL Server-instans til en anden