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