sql >> Database >  >> RDS >> Sqlserver

Voorbereide instructie kan niet meerdere keren worden uitgevoerd met gehele waarden

In het geval van voorbereide verklaringen moet u bindParam . gebruiken buiten de lus, meestal.

  1. bindParam is een enkele stap
  2. het instellen van gebonden variabelen is een herhaalbare stap (lus)
  3. je moet execute uitvoeren voor elke herhaling

Ik denk dat zoiets zou werken:

$stmt = $pdoDB->prepare("INSERT INTO mytab (col, key) VALUES (:col, :key)");

// bind params (by reference)
$stmt->bindParams(":col", $col, PDO::PARAM_STR); //bind variable $col
$stmt->bindParams(":key", $key, PDO::PARAM_INT); //bind variable $key

$values = ['here','are','some','values'];
foreach ($values as $i => $value) {
    $col = $value; //set col
    $key = $i; //set key
    $stmt->execute();
}



  1. opgeslagen procedures en mysql_insert_id probleem

  2. Cumulatieve som over een reeks rijen in mysql

  3. MySQL WORDT alleen lid van de meest recente rij?

  4. Hoe de grootste waarden uit een database halen en weergeven?