【问题标题】:In PHP, when I use $dbh->prepare($query)->execute($values) with placeholders, how can I INSERT multiple records one time?在 PHP 中,当我将 $dbh->prepare($query)->execute($values) 与占位符一起使用时,如何一次插入多条记录?
【发布时间】:2018-01-23 03:28:44
【问题描述】:
$dbh = new PDO($dsn, $username, $password);

$query = 'INSERT INTO `table1` (`id`, `name`) VALUES (?, ?)';
$values = [
    [1, 'Mary'],
    [2, 'Peter'],
    [3, 'Mike']
];

$stmt = $dbh->prepare($query);
$stmt->execute($values);

我知道上面的代码会导致错误。但是如果我想方便地用占位符插入多条记录,我该怎么办?

【问题讨论】:

  • 好的,非常感谢!似乎没有“优雅”的方式来实现这一点。
  • 真的不需要... 准备好的语句,语句和数据相互独立地发送到数据库。所以可以绑定参数,然后循环执行语句;这不会减慢速度,因为多次发送单个行插入的“传统”语句会。
  • 感谢您的帮助!

标签: php mysql pdo insert


【解决方案1】:

@CBroe 为这个问题提供了很好的答案。请参考上面的cmet,特别是他发的链接,里面有更详细的讨论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 2016-12-31
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    相关资源
    最近更新 更多