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

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

Barbara Streisand
發布: 2024-12-30 14:56:10
原創
259 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板