ホームページ > バックエンド開発 > PHPチュートリアル > ID の配列を指定した PHP を使用して複数の MySQL レコードを効率的に更新するにはどうすればよいですか?

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

Barbara Streisand
リリース: 2024-11-27 21:58:18
オリジナル
258 人が閲覧しました

How to Efficiently Update Multiple MySQL Records Using PHP with Array of IDs?

MySQL クエリの ID 配列を反復処理する

PHP で MySQL クエリを操作する場合、クエリから複数の値を組み込む必要がある場合があります。配列をクエリに挿入します。このガイドでは、プリペアド ステートメントと動的 SQL クエリの両方を使用してこれを効率的に実現する方法を説明します。

プリペアド ステートメント (推奨)

プリペアド ステートメントにより、セキュリティと効率が強化されます。使用方法は次のとおりです:

$ids = array(2, 4, 6, 8);

$sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id = ?";
$stmt = $mysqli->prepare($sql);

for ($i = 0; $i < count($ids); $i++) {
    $stmt->bind_param("i", $ids[$i]);
    $stmt->execute();
    echo "Updated record ID: $ids[$i]";
}

$stmt->close();
ログイン後にコピー

動的 SQL クエリ

また、動的 SQL クエリを動的に構築することもできます:

$ids = array(2, 4, 6, 8);

$params = implode(",", array_fill(0, count($ids), "?"));
$sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id IN ($params)";
$stmt = $mysqli->prepare($sql);

$types = str_repeat("i", count($ids));
$args = array_merge(array($types), $ids);
call_user_func_array(array($stmt, 'bind_param'), ref($args));

$stmt->execute();

echo "Updated record IDs: " . implode(",", $ids);
ログイン後にコピー

比較と使用法ガイドライン

  • 準備されたステートメント: 複数のデータベース操作の反復実行。 INSERT および UPDATE クエリにより適しています。
  • 動的 SQL: すべてのレコードに対して単一のより効率的なクエリを実行します。同じデータを含む SELECT、DELETE、および UPDATE 操作に最適です。

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

  • セキュリティ: SQLインジェクションを防止します
  • 効率: コンパイルされたステートメントを複数の実行に再利用します。
  • コンパクトさ: 実行中にパラメータ値のみを送信します。

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

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