ホームページ > データベース > mysql チュートリアル > PHP を使用して MySQL に複数の値を効率的かつ安全に挿入するにはどうすればよいですか?

PHP を使用して MySQL に複数の値を効率的かつ安全に挿入するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-20 00:28:10
オリジナル
749 人が閲覧しました

How Can I Efficiently and Securely Insert Multiple Values into MySQL Using PHP?

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 回の反復では、トランザクション ベースのアプローチの方が大幅に高速であることがわかりました。

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

したがって大規模な挿入操作には、トランザクション ベースのアプローチを使用することをお勧めします。

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

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