使用 PDO MySQL 插入多行:性能和效率
使用 PDO 向 MySQL 表插入多行时,有多种方法考虑。本题探讨了两种常用方法的相对效率和安全性:
方法一:使用 foreach 迭代插入
$stmt = $db->prepare($sql); foreach ($rows as $row) { $stmt->execute($row); }
方法二:使用 foreach 批量插入连接
$sql = "insert into `table_name` (col1, col2, col3) values "; $sql .= //not sure the best way to concatenate all the values, use implode? $stmt = $db->prepare($sql)->execute();
性能注意事项
批量插入(方法 2)通常比迭代插入(方法 1)更快,因为它减少了发送到数据库的查询数量。然而,在大多数实际场景中,性能差异可以忽略不计。
安全可靠
正确使用时,这两种方法都是安全可靠的。为了防止 SQL 注入漏洞,使用准备好的语句和参数化查询非常重要。
最佳方法
最佳方法取决于应用程序的具体要求:
将 folgenden 代码视为方法 2 的修改版本,使用 implode() 进行值串联和参数化以改进安全:
$sql = "insert into `table_name` (col1, col2, col3) values "; $paramArray = array(); $sqlArray = array(); foreach ($rows as $row) { $sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')'; foreach ($row as $element) { $paramArray[] = $element; } } $sql .= implode(',', $sqlArray); $stmt = $db->prepare($sql); $stmt->execute($paramArray);
以上是使用 PDO 向 MySQL 表插入多行时哪种方法更有效:迭代插入或批量插入?的详细内容。更多信息请关注PHP中文网其他相关文章!