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

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

Barbara Streisand
发布: 2024-12-30 14:56:10
原创
238 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板