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

Php 不同语言的MySQL数据库更新错误,php,mysql,Php,Mysql,我不知道我的网站发生了什么。我有一个PHP网站,为了更新内容,我有一个管理面板,它可以很好地用于英语,但当我试图用其他语言(如法语)更新内容时,在更新查询的帮助下使用PHP,我得到了一个白色页面,这意味着查询没有成功执行。或者像下面这样的错误 当我像这样更新内容时 “请您与我们同行,以确保我们的产品具有稳定的功效。” 我遇到了这样一个错误:“您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解使用接近‘efficacité’的正确语法。 “1号线不同代理商的开胃菜专家” 我

我不知道我的网站发生了什么。我有一个PHP网站,为了更新内容,我有一个管理面板,它可以很好地用于英语,但当我试图用其他语言(如法语)更新内容时,在更新查询的帮助下使用PHP,我得到了一个白色页面,这意味着查询没有成功执行。或者像下面这样的错误

当我像这样更新内容时 “请您与我们同行,以确保我们的产品具有稳定的功效。”

我遇到了这样一个错误:“您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解使用接近‘efficacité’的正确语法。 “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
争议裁决委员会将解释为:

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

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

   ... VALUES ('Miles O\'Brien');
                       ^--- escape
或者更好的是,使用一个更好的DB库,它允许占位符和/或准备好的语句


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

快速告诉我们您的查询是什么。你需要逃避你的价值观。或者更好的方法是,使用绑定参数来避免撇号打断查询。通过放置反斜杠()它可以工作,但正如我所写的,相同的内容在我的演示子域上更新时没有反斜杠。。你能告诉我吗。。这是怎么发生的?有没有正则表达式。指在文本中找到“(单引号)时,自动插入反斜杠.)。。这可能吗。我应该使用哪一个更好的DB库以及如何使用?较旧的PHP版本有一个极端愚蠢的“特性”,称为“神奇的引号”,它可能会逃过
-的引用。它可能“拯救”了你,使你看不到这个bug。事实仍然是,你很容易受到伤害。在知道问题是什么以及如何处理之前,您不应该处理与数据库相关的代码。