首頁 >資料庫 >mysql教程 >如何使用 PHP 和 PDO 有效率地將多行插入 MySQL 表中?

如何使用 PHP 和 PDO 有效率地將多行插入 MySQL 表中?

Barbara Streisand
Barbara Streisand原創
2024-10-29 11:52:29213瀏覽

How to Efficiently Insert Multiple Rows into a MySQL Table Using PHP and PDO?

使用PHP 和PDO 將陣列插入MySQL

初始化線上程式時,客戶可以註冊多個以三位數整數表示的程式,並且儲存在數組中。例如,要註冊節目155、165、175 和185,將使用以下數組:

<code class="php">$data = array(155, 165, 175, 185);</code>

傳統上,會建立一個循環來執行多個INSERT 語句,例如:

<code class="php">for($j = 0; $j < (count($data)-1); $j++) {
   $stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
   $stmt->execute(array($memberid, $data[$j]));
}</code>

但是,建立單一動態SQL 語句被認為更有效。一個可能的解決方案是:

<code class="php">$sql = array();
foreach( $data as $row ) {
    $sql[] = '("'.$memberid.'", "'.$row[$j].'", NOW()")';
}
mysql_real_query('INSERT INTO table (memberid, programid) VALUES '.implode(',', $sql));</code>

使用PDO,更合適的方法是:

<code class="php">$sql = 'INSERT INTO table (memberID, programID) VALUES ';
$insertQuery = array();
$insertData = array();
foreach ($data as $row) {
    $insertQuery[] = '(?, ?)';
    $insertData[] = $memberid;
    $insertData[] = $row;
}

if (!empty($insertQuery)) {
    $sql .= implode(', ', $insertQuery);
    $stmt = $db->prepare($sql);
    $stmt->execute($insertData);
}</code>

此技術允許使用單一準備好的語句將多行插入到資料庫中,從而減少資料庫呼叫次數並提高效能。

以上是如何使用 PHP 和 PDO 有效率地將多行插入 MySQL 表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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