sql >> Base de Datos >  >> RDS >> Sqlserver

La declaración preparada no se puede ejecutar varias veces con valores enteros

En el caso de declaraciones preparadas, debe usar bindParam fuera del bucle, por lo general.

  1. bindParam es un solo paso
  2. establecer variables vinculadas es un paso repetible (bucle)
  3. tienes que ejecutar execute por cada repetición

Supongo que algo así funcionaría:

$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();
}