首頁 >後端開發 >php教程 >PDO 準備語句能否在單一查詢中有效率地插入多行?

PDO 準備語句能否在單一查詢中有效率地插入多行?

Barbara Streisand
Barbara Streisand原創
2024-12-30 14:56:10260瀏覽

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn