我希望使用 PHP PDO 进行多次插入。
我找到的最接近的答案是这个
如何将数组插入到单个 mysql 准备好的语句中 https://stackoverflow.com/questions/4629022/how-to-insert-an-array-into-a-single-mysql-prepared-statement-w-php-and-pdo
然而给出的例子使用 ??而不是真正的占位符。
我已经查看了 PHP 文档网站上的占位符示例
php.net pdo.prepared-语句 http://php.net/manual/en/pdo.prepared-statements.php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
现在假设我想实现上述目标,但使用数组
$valuesToInsert = array(
0 => array('name' => 'Robert', 'value' => 'some value'),
1 => array('name' -> 'Louise', 'value' => 'another value')
);
我该如何处理 PDO 和每个事务的多个插入?
我想它会以循环开始?
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
foreach($valuesToInsert as $insertRow){
// now loop through each inner array to match binded values
foreach($insertRow as $column => value){
$stmt->bindParam(":{$column}", value);
}
}
$stmt->execute();
然而,上面的方法不起作用,但希望能够展示我想要实现的目标