ホームページ > バックエンド開発 > PHPチュートリアル > 複数の行を MySQLi に効率的かつ安全に挿入するにはどうすればよいですか?

複数の行を MySQLi に効率的かつ安全に挿入するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-31 16:12:13
オリジナル
364 人が閲覧しました

How Can I Efficiently and Securely Insert Multiple Rows into MySQLi?

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 件の挿入。結果は、トランザクションを使用した場合に顕著な速度向上を示しました。

  • トランザクションなし: 226 秒
  • トランザクションあり: 2 秒

トランザクションを使用した場合と準備されたステートメントを組み合わせると、データ操作攻撃に対するセキュリティが確保されるだけでなく、大量のデータを MySQL に挿入するときのパフォーマンスも最適化されます。データベース。

以上が複数の行を MySQLi に効率的かつ安全に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート