ホームページ > バックエンド開発 > PHPチュートリアル > SQL インジェクションとスタック オーバーフローを防ぎながら、MySQL に 2000 行を効率的に挿入するにはどうすればよいですか?

SQL インジェクションとスタック オーバーフローを防ぎながら、MySQL に 2000 行を効率的に挿入するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-13 10:23:10
オリジナル
555 人が閲覧しました

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

mysqli での効率的な一括挿入: SQL インジェクションとスタック オーバーフローの防止

大量のデータを MySQL データベースに安全かつパフォーマンスよく挿入することは、多くのアプリケーションにとって重要です。この質問では、SQL インジェクション保護を確保しながら 2000 行を効果的に挿入する手法について説明します。

提供されたコード スニペットは値の配列を反復処理し、挿入ごとに個別のクエリを準備して実行します。 SQL インジェクションに対しては安全ですが、このアプローチは非効率的でスタック オーバーフローが発生する可能性があります。

トランザクションを使用した拡張ソリューション:

より最適なソリューションには、MySQL トランザクションの利用が含まれます。挿入を 1 つのトランザクション内でグループ化することで、データベースはプロセスを最適化し、実行時間を大幅に短縮できます。

$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 秒

これは、テスト ケースで 2 桁の大幅な速度向上を表します。

トランザクションを活用することで、効率的に挿入できます。 SQL インジェクションのセキュリティを維持し、スタック オーバーフローを回避しながら、データを一括で保存します。

以上がSQL インジェクションとスタック オーバーフローを防ぎながら、MySQL に 2000 行を効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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