此查询旨在更新inUse变量,如果表单输入的结果,例如$ _POST ['eventID']匹配数据库中的eventID,从而将该事件的inUse值更改为1,将所有其他值更改为零。
mysql_query("UPDATE events SET inUse=IF('$_POST['eventID']' = eventID, 1, 0)");
数据库需要一个整数,但我担心因为我已经转储$ _POST ['eventID']的值,它显示为一个字符串。我尝试使用intval和int无济于事。
或者是我的查询语法中的问题?
谢谢:)
答案 0 :(得分:1)
试试这个:
UPDATE events SET
inUse = ('$_POST['eventID']' = eventID);
这假设inUse
是一个布尔值(在mysql中实现为TINYINT
,其值为1
或0
,但无论如何,mysql之间转换boolean / int值就好了)
答案 1 :(得分:1)
我猜测来自PHP的查询类型。
无论你的语法有什么问题(这是一个缺少的括号不是吗?),真的不要在那里使用那个帖子。您是否尝试过发送“'); DROP TABLE事件”的值到您的帖子变量了吗?如果没有,我相信别人会!
如果该值为int,请尝试
$num = (int)$_POST['eventID'];
mysql_query("UPDATE events SET inUse=($num = eventID), 1, 0");