首页 >后端开发 >php教程 >PDO 准备语句能否在单个查询中高效插入多行?

PDO 准备语句能否在单个查询中高效插入多行?

Barbara Streisand
Barbara Streisand原创
2024-12-30 14:56:10238浏览

Can PDO Prepared Statements Efficiently Insert Multiple Rows in a Single Query?

使用 PDO 预准备语句插入多行

为了增强 PDO 的安全性,开发人员寻求使用预准备语句在单个查询中插入多行的方法声明。本文探讨了这一解决方案的可行性和实现。

在一个查询中插入多行比常规插入更快。准备好的语句使用代码中显式编写的常量部分,提供 100% 的安全性。

要实现此目的,请为单行创建一个带有一系列占位符的 VALUES 部分。相应地确定要重复此序列的字段和行数。

// VALUES part for a single row
$values = str_repeat('?,', count($data[0]) - 1) . '?';

// Construct the entire query
$sql = "INSERT INTO table (columnA, columnB) VALUES " .
    // Repeat the VALUES part for each row
    str_repeat("($values),", count($data) - 1) . "($values)";

$stmt = $db->prepare($sql);
// Execute with all values from $data
$stmt->execute(array_merge(...$data));

这种方法是安全的,因为查询包含常量部分。它与所有受支持的 PHP 版本中的 MySQLi 和 PDO 兼容。

以上是PDO 准备语句能否在单个查询中高效插入多行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn