Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pernyataan yang disiapkan tidak dapat dieksekusi beberapa kali dengan nilai integer

Dalam hal pernyataan yang disiapkan, Anda harus menggunakan bindParam di luar lingkaran, biasanya.

  1. bindParam adalah satu langkah
  2. menetapkan variabel terikat adalah langkah berulang (loop)
  3. Anda harus menjalankan execute untuk setiap pengulangan

Saya kira, sesuatu seperti itu akan berhasil:

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui beberapa baris menggunakan pernyataan pilih

  2. Apa yang setara dengan Oracle dari fungsi IsNull() SQL Server?

  3. SQL Server dan C#:dapatkan id yang terakhir dimasukkan

  4. Kueri heterogen memerlukan opsi ANSI_NULLS dan ANSI_WARNINGS untuk disetel untuk koneksi. Ini memastikan semantik kueri yang konsisten

  5. SQL antara tidak inklusif