透過SQL 注入緩解在MySQLi 中高效插入多行
使用PHP 和MySQLi 將大量行插入多行
使用PHP 和MySQLi 將大量行插入SQL又高效的技術。在處理此類資料量時避免 SQL 注入可能具有挑戰性。
解決方案
$array = array("array", "with", "about", "2000", "values"); $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $stmt->close(); $mysqli->query("COMMIT");
要解決此問題,請考慮使用交易將插入操作分組。這種方法涉及將準備和綁定操作移到循環之外,如下所示:
交易將一系列操作分組到單一原子單元中,確保全部或都不執行的行被插入。這可以防止部分插入並防止 SQL 注入嘗試。
實作
請記住在 PHP 循環之外執行 START TRANSACTION 和 COMMIT 查詢以確保整個操作被視為單一交易。這種方法將準備好的語句的安全性與批次插入的效率結合起來,同時減少堆疊溢位。以上是如何有效率地向 MySQLi 中插入多行,同時防止 SQL 注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!