警告:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'color:red'>
附近使用正确的语法
这是我的代码:
$db->query("UPDATE members set id='{$this->test['id']}',
lvl='{$this->userlvl}', ip='{$this->test['IP']}',
time='{$this->test['time']}',
linechat='{$this->test['msg']}'
WHERE user='{$this->test['name']}'");
我是初学者所以请告诉我什么是必须的^^
我试过这个
$fixchat = mysql_real_escape_string($this->test['msg']);
$fixname = mysql_real_escape_string($this->test['name']);
$db->query("UPDATE members set id='{$this->test['id']}',
lvl='{$this->userlvl}', ip='{$this->test['IP']}',
time='{$this->test['time']}', linechat='{$fixchat}'
WHERE user='{$fixname}'");
但是我收到了这个错误:
警告:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行的''\ wellington \''附近使用正确的语法...
答案 0 :(得分:0)
$this->test
数组中的一个或多个值中包含双引号字符。查询字符串的每个动态元素都必须通过相应的转义函数(在您的情况下为mysql_real_escape_string()
)进行转义。这将转义引号,以便正确解释字符串。
旁注:您应该使用mysqli PHP库而不是不推荐使用的mysql。此外,更好的替代解决方案是使用参数化查询。
答案 1 :(得分:0)
解决方法:addslashes函数
$fixchat = addslashes($this->test['msg']);
$fixname = addslashes($this->test['name']);
$db->query("UPDATE members set id='{$this->test['id']}',
lvl='{$this->userlvl}', ip='{$this->test['IP']}',
time='{$this->test['time']}', linechat='{$fixchat}'
WHERE user='{$fixname}'");