1

このクエリは、フォーム入力の結果、たとえば$ _POST ['eventID']がデータベースのeventIDと一致する場合に、inUse変数を更新することを目的としています。これにより、そのイベントのinUse値が1に変更され、その他はすべてゼロに変更されます。

mysql_query("UPDATE events SET inUse=IF('$_POST['eventID']' = eventID, 1, 0)");

データベースには整数が必要ですが、文字列として表示されている$_POST['eventID']の値をダンプしたので心配です。私はintvalとintを使ってみましたが無駄になりました。

または、クエリ構文に問題がありますか?

ありがとう :)

4

2 に答える 2

1

これを試して:

UPDATE events SET
inUse = ('$_POST['eventID']' = eventID);

これは、がブール値であることを前提としています(mysqlでは、またはのいずれかの値inUseで実装されますが、いずれの場合でも、mysqlはブール値とint値の間で問題なく変換されます)TINYINT10

于 2012-07-17T14:22:51.643 に答える
1

PHPであるクエリタイプから推測しています。

構文に問題がある場合でも(ブラケットが欠落しているのではないでしょうか)、実際にはその投稿を使用しないでください。「'); DROP TABLEevents」の値をpost変数に送信しようとしましたか?そうでなければ、他の誰かがそうするだろうと私は確信しています!

その値がintの場合は、試してください

$num = (int)$_POST['eventID'];
mysql_query("UPDATE events SET inUse=($num = eventID), 1, 0");
于 2012-07-17T14:26:38.427 に答える