不同语言的MySQL数据库更新错误

时间:2013-08-30 19:45:14

标签: php mysql

我不知道我的网站发生了什么。我有一个PHP网站,并更新我有一个管理面板的内容,它适用于英语,但当我尝试使用其他语言更新内容,如使用PHP的法语使用更新查询的帮助我得到一个白页,意味着查询未成功执行。或者如下所示的错误。

当我像这样的文字更新内容时 “Notreéquipedespécialistessauravous advagner tout au long des mandats dans un soucis constant d'efficacité。”

我收到如下错误:“您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册,以便在'efficacité附近使用正确的语法。 专家们在第1行开始了解不同的情况“

我知道这是不同编码的问题,但我无法解决这个问题。

还会发生一些更奇怪的事情。我的网站位于本地服务器,演示子域和生产服务器上。其他语言更新的内容正在进行中,但在生产网站上它给出了一个空白页面。表示查询未执行。

请快速告诉我如何解决此问题。

1 个答案:

答案 0 :(得分:1)

您有一个SQL注入漏洞,'中的d'efficacité打破了您的查询。 e.g。

INSERT INTO people (names) VALUES ('Miles O'Brien');
                                   ^-- start of string
                                                 ^---supposed end of string
                                           ^--- actual end of string

DB会将此解释为:

Miles O - 要放入名称字段的字符串
  Brien - 一些未知的SQL关键字/字段名称

必须正确转义进入查询的所有数据,例如

   ... VALUES ('Miles O\'Brien');
                       ^--- escape

或者更好的是,使用更好的DB库来允许占位符和/或预处理语句。

TL; DR:这不是编码问题。