2

変数 $ids があります。これは , で区切られた文字列なので、 $ids = "1" または $ids = "1, 3, 7, 8" にすることができます

私がしたいのは、これらの値に基づいてデータベースを更新することです。

   $query = "UPDATE Fields SET Value = '1'   WHERE Id IN '$ids'";

また:

   $query = "UPDATE Fields SET Value = '1'   WHERE Id '$ids'";

データベースを更新する最善の方法は何ですか?文字列を配列に分割してから、for each ループを実行する必要がありますか? またはより良い方法はありますか?

4

3 に答える 3

3

SQL インジェクションに対して広く開かれているという事実を保存してください。この行、1 つまたは複数の ID に対して機能します。

$query = "UPDATE Fields SET Value = '1'   WHERE Id IN ($ids)";

ここで、SQL インジェクション攻撃から身を守るには、明らかにあなた次第ですが、その配列を爆発させて、次のような複数の更新ステートメントを送信する必要があります。

$query = "UPDATE Fields SET Value = '1'   WHERE Id = :Id";
于 2013-07-22T18:23:22.467 に答える