php - 准备语句 INSERT INTO xxx () VALUES (), (), (), ... 可变数量的记录?

标签 php mysql

我需要经常向表中插入一堆记录。我没有将它们逐一插入,效率不高,而是使用 INSERT INTO () VALUES (), (), (), ... 批量插入它们,其中每批中的记录数不是固定的。有时是 20 条记录,有时是 56 条记录,等等。

到目前为止,我只能使用预定数量的参数构建准备好的语句,例如 examples .

那么如何为“INSERT INTO xxx () VALUES (), (), (), ...”这样的查询构建准备好的语句,其中 VALUES 之后的记录数不是预先确定的?

最佳答案

我认为你想使用这样的东西:

<?php
// pdo example

$sql = 'INSERT INTO table (field1, field2, field3) VALUES (:value1, :value2, :value3)';

// $dbh is pdo connection
$insertTable = $dbh->prepare($sql);

$countArray = count($array);
$i = 0;

while ($i < $countArray) {
   $insertTable->bindParam(':value1', $array['value1'][$i], PDO::PARAM_INT); // if value is int
   $insertTable->bindParam(':value2', $array['value2'][$i], PDO::PARAM_STR); // if value is str
   $insertTable->bindParam(':value3', $array['value3'][$i], PDO::PARAM_STR);
   $insertTable->execute();

   $i++;
}

?>

关于php - 准备语句 INSERT INTO xxx () VALUES (), (), (), ... 可变数量的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16603409/

相关文章:

php - SQL : Invalid parameter number: parameter was not defined

php - 在 PHP 中设置背景颜色?

"update all rows where column > number"的 MySQL 正确语句?

MySQL 主/主复制仅以一种方式工作

asp.net - 在网络表单中显示不同的选择?

mysql - 什么时候切换到 NoSQL?

php - 如何向 Eloquent 数组添加计数?

php - 在 PHP MySQL 中创建 CSV 时出现问题

mysql - 如何使用 mysql 创建每月队列分析表?

php - codeigniter 在 View 中包含公共(public)文件