我不知道我的网站发生了什么。我有一个PHP网站,并更新我有一个管理面板的内容,它适用于英语,但当我尝试使用其他语言更新内容,如使用PHP的法语使用更新查询的帮助我得到一个白页,意味着查询未成功执行。或者如下所示的错误。
当我像这样的文字更新内容时 “Notreéquipedespécialistessauravous advagner tout au long des mandats dans un soucis constant d'efficacité。”
我收到如下错误:“您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册,以便在'efficacité附近使用正确的语法。 专家们在第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:这不是编码问题。