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);

这假设它inUse是一个布尔值(在 mysql 中它被实现为TINYINT带有值的 a10,但无论如何,mysql 在布尔值/int 值之间转换就好了)

于 2012-07-17T14:22:51.643 回答
1

我从 PHP 的查询类型猜测。

不管你的语法有什么问题(不是缺少括号吗?),真的不要在那里使用那个帖子。您是否尝试过将“'); DROP TABLE events”的值发送到您的 post 变量?如果没有,我相信其他人会!

如果该值是 int,请尝试

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