PHP と MySQLi を使用した複数の値の効率的かつ安全な挿入
SQL インジェクションとスタック オーバーフローを回避して多数の値を安全に挿入するには、次の点を考慮してください。
アプローチ 1: 強化プリペアド ステートメントを使用したループ
現在のアプローチを維持しますが、効率を高めるためにいくつかの変更を加えます:
$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 中国語 Web サイトの他の関連記事を参照してください。