繁体   English   中英

sql查询错误-逻辑或语法

[英]sql query error - logical or syntax

目前,我正在运行一个更新查询,该查询正在运行,但是它允许插入不需要的空值。

mysql_query('UPDATE community_table SET 
age = "'.$age.'", 
gender = "'.$gender.'", 
pregnant = "'.$pregnant.'", 
diet = "'.$diet.'",
smoker = "'.$smoker.'",
alcohol = "'.$alcohol.'",
exercise = "'.$exercise.'",
bmi = "'.$bmi.'",
sleeping = "'.$sleeping.'",
stress = "'.$stress.'", 
education = "'.$education.'"
WHERE username = "' . $_SESSION['user'] . '" ');

我尝试了该查询,这似乎防止输入空值,但是当变量不为空时,它也防止输入值。

age = "'.$age.'", 
gender = "'.$gender.'", 
pregnant = "'.$pregnant.'", 
diet = "'.$diet.'",
smoker = "'.$smoker.'",
alcohol = "'.$alcohol.'",
exercise = "'.$exercise.'",
bmi = "'.$bmi.'",
sleeping = "'.$sleeping.'",
stress = "'.$stress.'", 
education = "'.$education.'"

WHERE age IS NOT NULL,
gender     IS NOT NULL,
pregnant   IS NOT NULL,
diet       IS NOT NULL,
smoker     IS NOT NULL, 
alcohol    IS NOT NULL,
exercise   IS NOT NULL,
bmi        IS NOT NULL,
sleeping   IS NOT NULL,
stress     IS NOT NULL,
education  IS NOT NULL and where
username = "' . $_SESSION['user'] . '" ');

上面的查询有问题吗,或者我的输入中可能有一个空值?

谢谢。

您可以阻止从脚本发送空字符串,或尝试执行此操作

UPDATE community_table SET
    education = IFNULL($education, education) -- if null, maintain previous value

像这样插入之前只需检查值-

UPDATE community_table SET
    education = ifnull($education, education)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM