Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Подготвеният оператор не може да се изпълнява многократно с целочислени стойности

В случай на подготвени изрази трябва да използвате bindParam извън цикъла, обикновено.

  1. bindParam е една стъпка
  2. задаването на обвързани променливи е повторяема стъпка (цикъл)
  3. трябва да изпълните execute за всяко повторение

Предполагам, че нещо подобно ще свърши работа:

$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. Нулева или празна проверка за низова променлива

  2. Има ли функция за линейна регресия в SQL Server?

  3. SQL Server 2005 Използване на DateAdd за добавяне на ден към дата

  4. Грешки в SQL Server при импортиране на CSV файл, въпреки че varchar(MAX) се използва за всяка колона

  5. SQL актуализация от една таблица в друга въз основа на съвпадение на идентификатор