使用PHP 和MySQLi 高效、安全地插入多個值
要安全地插入多個值,避免溢出SQL 注入和堆疊,請考慮以下事項
方法1:使用Prepared增強循環語句
維持目前的方法,但進行一些修改以提高效率:
$stmt = $mysqli->prepare("INSERT INTO table (link) VALUES (?)"); $stmt->bind_param("s", $one); foreach ($array as $one) { $stmt->execute(); }
此方法在循環外初始化準備好的語句,提高效能。
方法2:基於事務的方法
為了進一步優化,利用事務:
$stmt = $mysqli->prepare("INSERT INTO table (link) VALUES (?)"); $stmt->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $mysqli->query("COMMIT");
透過將插入包裝在事務中,利用了MySQL 的緩衝系統,從而顯著提高了速度。
測試和結果
在 10,000在次迭代的效能測試中,發現基於事務的方法大大提高了效能更快:
因此大規模建議使用基於交易的方式插入操作。
以上是如何使用PHP高效、安全地將多個值插入MySQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!