在MySQL 中使用PDO 高效插入多行
當面對向MySQL 表中插入多行的任務時,開發人員經常思考使用PDO 的最佳方法。主要有兩個選項:逐行執行或連接 SQL 語句並批次執行。
選項1:單獨行執行
這個方法涉及準備SQL 語句並分別為每一行執行它:
$sql = "insert into `table_name` (col1, col2, col3) values (?, ?, ?)"; $stmt = $db->prepare($sql); foreach ($rows as $row) { $stmt->execute($row); }
選項2:批次插入
在此方法中,SQL語句與行的值連接,然後作為單一命令執行:
$sql = "insert into `table_name` (col1, col2, col3) values "; $paramArray = []; $sqlArray = []; 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);
效能注意事項
雖然批次插入方法理論上更快,但兩個選項之間的實際性能差異通常可以忽略不計。在大多數情況下,執行一次語句節省的時間將被連線值的開銷所抵銷。
安全注意事項
這兩種方法都被認為是安全的,因為它們使用準備好的語句來防止SQL注入
建議
為了簡單和易於實現,通常建議使用單行執行方法。但是,如果效能是一個關鍵問題,則可以探索批次插入方法。
附加說明
以上是MySQL中如何使用PDO高效插入多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!