sql >> Database >  >> RDS >> Mysql

Kan geen query's uitvoeren terwijl andere niet-gebufferde query's actief zijn in een lus

Nadat u alle resultaten in uw execute-lus hebt opgehaald, moet u de volgende rijenset krijgen en vervolgens de cursor sluiten voordat u probeert de opgeslagen procedure opnieuw uit te voeren. Probeer dit:

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
}

De echt belangrijke toevoeging hier is de aanroep naar nextRowSet() . Onder de motorkap retourneert PDO een tweede rijenset die u moet openen voordat u een tweede (en volgende) opgeslagen procedure op dezelfde verbinding uitvoert.



  1. Maak een Date-object in PHP voor datums vóór 1970 in een bepaald formaat

  2. Django-project uitvoeren zonder django-installatie

  3. Is er zoiets CASE-expressie in JPQL?

  4. Zijn externe sleutels echt nodig in een database-ontwerp?