Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Không thể thực hiện câu lệnh chuẩn bị nhiều lần với các giá trị nguyên

Trong trường hợp các câu lệnh đã soạn sẵn, bạn phải sử dụng bindParam bên ngoài vòng lặp, thông thường.

  1. bindParam là một bước duy nhất
  2. thiết lập các biến bị ràng buộc là một bước có thể lặp lại (vòng lặp)
  3. bạn phải chạy execute cho mỗi lần lặp lại

Tôi đoán, một cái gì đó như vậy sẽ hoạt động:

$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. Triển khai quan hệ một-không-một trong SQL Server

  2. Khởi động SQL Express từ WiX?

  3. SQl Server Tôi cần sửa lỗi Hết thời gian chờ. Khoảng thời gian chờ đã trôi qua

  4. Các cách khác nhau để giám sát máy chủ SQL luôn có sẵn nhóm

  5. SQL Server 2005/2008 Nhóm Bằng câu lệnh với các tham số mà không cần sử dụng SQL động?