ホームページ >データベース >mysql チュートリアル >ID の配列を使用して複数の MySQL レコードを効率的に更新するにはどうすればよいですか?

ID の配列を使用して複数の MySQL レコードを効率的に更新するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-14 22:36:23742ブラウズ

How Can I Efficiently Update Multiple MySQL Records Using an Array of IDs?

配列ベースのコンテンツ ID を使用した MySQL クエリの利用

項目 ID を含む配列が与えられた場合、タスクはそれぞれの項目 ID を使用して MySQL クエリを実行することです。配列内のIDを連続的に指定します。具体的には、クエリには、ID に基づいて個々のレコードを更新することが含まれます。

解決策: プリペアド ステートメントの採用

SQL インジェクションから保護するには、プリペアド ステートメントを使用することが重要です。以下に 2 つの代替アプローチを示します。

1.単一パラメータを使用した反復更新:

  • ID の単一プレースホルダーを含む SQL ステートメントを準備します:

    $sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id = ?";
  • ループを使用して、各 ID をプレースホルダーにバインドし、クエリ。

2.複数のパラメータを使用したシングルステップ更新:

  • すべての ID のプレースホルダーを含む SQL ステートメントを準備します:

    $params = implode(",", array_fill(0, count($ids), "?"));
    $sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id IN ($params)";
  • 動的バインディングを使用して作成ID の参照の配列。
  • 型と値を指定して binding_param を呼び出します。
  • クエリを 1 回実行してすべてのレコードを更新します。

プリペアド ステートメントの利点:

  • セキュリティ: SQL を防止します
  • 効率: コンパイルされたステートメントを再利用して実行を高速化します。
  • 最適化されたデータ転送: パラメーター値のみを送信し、ネットワーク トラフィックを削減します。

実行される特定の操作に合わせてアプローチの選択を調整することを忘れないでください(例: UPDATE または SELECT)。

以上がID の配列を使用して複数の MySQL レコードを効率的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。