首頁 >後端開發 >php教程 >如何有效率地向MySQL插入2000行,同時防止SQL注入和堆疊溢位?

如何有效率地向MySQL插入2000行,同時防止SQL注入和堆疊溢位?

Patricia Arquette
Patricia Arquette原創
2024-12-13 10:23:10558瀏覽

How Can I Efficiently Insert 2000 Rows into MySQL While Preventing SQL Injection and Stack Overflow?

mysqli 中的高效批量插入:防止 SQL 注入和堆疊溢出

安全、高效地將大量資料插入 MySQL 資料庫對於許多應用程式至關重要。本問題探討了有效插入 2000 行同時確保 SQL 注入保護的技術。

提供的程式碼片段迭代一組值,為每次插入準備並執行單獨的查詢。雖然可以防止 SQL 注入,但這種方法效率低下,並可能導致堆疊溢位。

交易的增強解決方案:

更最佳化的解決方案涉及利用 MySQL 事務。透過將插入分組到單一事務中,資料庫可以優化流程並顯著減少執行時間。

$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");

效能比較:

此技術提供了基準測試證明,速度顯著提高:

  • 沒有交易:226秒
  • 使用事務:2秒

這對於測試案例而言,速度提升了兩個數量級,令人印象深刻。

透過利用事務,您可以有效地插入批量數據,同時保持 SQL 注入安全性並避免堆疊溢位。

以上是如何有效率地向MySQL插入2000行,同時防止SQL注入和堆疊溢位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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