目前我正试图为自己制作一个迷你博客/ cms类型的东西来测试我的技能,并希望用PHP学习一两件事。
所以我有一个里面有文本字段的表单。当它提交时,它应该运行以下查询,但是我收到以下错误...
资源ID#4 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行'cms,description = hello world,maintenance = off,regsi'附近使用正确的语法
以下是该地区的代码......
mysql_query("UPDATE settings SET name = " . $siteName . ", description = " . $siteDesc . ", maintenance = " . $siteMode . " [...] ") or die($settings . "<br/>" . mysql_error());
我使用“[...]”缩短了它,因为它遵循相同的风格(即“test1 = $ test1,test2 = $ test2”等......)。
请帮忙吗?谢谢!
答案 0 :(得分:2)
您实际上不需要关闭并使用.
(连接)运算符重新打开字符串
php字符串解析器会将变量插入到字符串中。
所以你可以这样做:
mysqli_query("UPDATE settings SET name = '$siteName', description = ...";
单引号告诉mysql将变量视为字符串文字而不是列名。
你应该做的事情(如果还没有)正在逃避你的用户输入变量,请参阅How can I prevent SQL injection in PHP?
你不应该做的是使用mysql*_
函数,因为它们已被折旧。请参阅大红框here使用mysqli*_
代替