使用 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中文网其他相关文章!