sql >> Databasteknik >  >> RDS >> Mysql

Kan inte köra frågor medan andra obuffrade frågor är aktiva fel i loop

När du har hämtat alla resultat i din exekveringsslinga bör du hämta nästa raduppsättning och sedan stänga markören innan du försöker köra den lagrade proceduren igen. Prova detta:

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
}

Det riktigt viktiga tillägget här är uppmaningen till nextRowSet() . Under huven returnerar PDO en andra raduppsättning som du behöver komma åt innan du kör en andra (och efterföljande) lagrad procedur på samma anslutning.



  1. importera csv-fil från extern FTP-webbplats

  2. Hur stoppar jag bots från att köra lite kod på PHP-skript?

  3. Är Google Data Analytics Professional-certifikatet värt det?

  4. java jdbc mysql-kontakt:hur man löser frånkoppling efter en lång inaktivitetstid