使用 PDO 準備語句插入多行
可以使用單一準備語句將多個資料行插入資料庫。準備好的語句透過防止 SQL 注入攻擊和最佳化查詢執行來提高安全性和效率。
考慮以下範例,將資料插入名為「Table」且包含「col1」、「col2」和「col3」欄位的表中:
$params = array(); $params[':val1'] = "val1"; $params[':val2'] = "val2"; $params[':val3'] = "val3"; $sql = "INSERT INTO table VALUES (col1, col2, col3) VALUES (:val1,:val2,:val3)"; $stmt = DB::getInstance()->prepare($sql); $stmt->execute($params);
如果需要插入多行,可以實作以下方法:
組合 SQL語句: 將佔位符範本作為 VALUES 子句附加到 INSERT 查詢。最終語句為:
INSERT INTO Table (col1, col2, col3) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?)
準備並執行: 使用 PDO 準備擴充語句。執行該語句,傳遞一個數組,其中包含所有要按照與佔位符相同的順序插入的值。
$rows = array( array('abc', 'def', 'ghi'), array('abc', 'def', 'ghi'), array('abc', 'def', 'ghi') ); // Your code here as explained in the full response
這種方法的優點是它將所有值組合成一個單一 INSERT 查詢,同時保持準備好的語句的安全性和最佳化優勢。
對於涉及大量行的場景,使用循環一次插入一行可能會更有效。這可確保更好的效能並避免潛在的記憶體問題。
以上是如何使用帶有 PDO 的單一準備語句將多行資料插入資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!