MySQLi での複数行の効率的かつ安全な挿入
大規模なデータセットを扱う場合、MySQL データベースにデータを効率的に挿入することが重要ですセキュリティを維持しながら。これは、SQL インジェクションを防止し、パフォーマンスを最適化する適切な手法を利用することで実現できます。
複数の行を挿入するための効果的なアプローチの 1 つは、トランザクション内でプリペアド ステートメントを使用することです。この方法では、データの整合性と速度の両方が保証されます。次のコード スニペットを考えてみましょう:
$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");
トランザクションを利用することにより、データベース操作が 1 つのユニットとしてグループ化されます。これは、すべての挿入が同時に成功するか失敗するかのいずれかになり、データの一貫性が確保されることを意味します。さらに、準備されたステートメントは、すべての入力が適切にサニタイズされることを保証することで、SQL インジェクションの脆弱性を防ぎます。
このアプローチのもう 1 つの利点は、パフォーマンスが大幅に向上することです。トランザクション アプローチでは、データベース サーバーへの複数のラウンド トリップを回避することで、行ごとに個別のプリペアド ステートメントを使用する場合に比べて、挿入に必要な時間が大幅に短縮されます。
この方法の効率性を示すために、次のコマンドを実行してテストが実施されました。 PHP と MySQLi を使用した 10,000 件の挿入。結果は、トランザクションを使用した場合に顕著な速度向上を示しました。
トランザクションを使用した場合と準備されたステートメントを組み合わせると、データ操作攻撃に対するセキュリティが確保されるだけでなく、大量のデータを MySQL に挿入するときのパフォーマンスも最適化されます。データベース。
以上が複数の行を MySQLi に効率的かつ安全に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。