Php 更新时发生SQL错误

Php 更新时发生SQL错误,php,mysql,Php,Mysql,我在运行PHP SQL代码时出现以下SQL错误: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“WHERE useid=8”附近要使用的正确语法 math字段是int(10),useid也是int(10),看起来字段名应该是userid,而不是useid 或者,尝试将值括在单引号中,如下所示: "UPDATE free_ebook SET math = '".$assign_math."' WHERE useid = '".$newuserid."';" 甚至 "U

我在运行PHP SQL代码时出现以下SQL错误:

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“WHERE useid=8”附近要使用的正确语法


math
字段是
int(10)
useid
也是
int(10)
,看起来字段名应该是
userid
,而不是
useid

或者,尝试将值括在单引号中,如下所示:

"UPDATE free_ebook SET math = '".$assign_math."' WHERE useid = '".$newuserid."';"
甚至

"UPDATE free_ebook SET math = '{$assign_math}' WHERE useid = '{$newuserid}';"

关于主题:
mysql\u query()
不推荐使用,您应该使用PDO扩展。学习起来很容易(可能更容易!),而且更安全:


史密斯先生,您好,欢迎来到SO。您的变量解析为什么?可能它们是终止查询的未替换字符串提供
$assign\u math
的值
mysql.*
函数不再维护,不应在任何新的代码库中使用。它正逐渐被淘汰,取而代之的是更新的API。相反,您应该与或一起使用。@Sean$assign\u math=$\u POST['input\u math'];这是一个整数,我们不会把人们送到nettuts或phpro页面上学习教程。这两个网站都告诉人们将PDO与模拟的prepares一起使用,这否定了从准备好的语句中获得的任何优势。而是将人们引导到该页面:
"UPDATE free_ebook SET math = '{$assign_math}' WHERE useid = '{$newuserid}';"