sql >> Databáze >  >> RDS >> Sqlserver

Připravený příkaz nelze provést vícekrát s celočíselnými hodnotami

V případě připravených výpisů musíte použít bindParam mimo smyčku, obvykle.

  1. bindParam je jediný krok
  2. nastavení vázaných proměnných je opakovatelný krok (smyčka)
  3. musíte spustit execute pro každé opakování

Myslím, že něco takového by fungovalo:

$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. Proč to serializovatelná transakce PostgreSQL považuje za konflikt?

  2. Použití funkční notace v dotazech PostgreSQL místo tečkové notace

  3. mysql - smazal jsem tabulku uživatelů! jak to mohu obnovit?

  4. Hibernace aktualizace jednoho až mnoha kaskádových