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