Php #039而不是MySQL数据库中的撇号

Php #039而不是MySQL数据库中的撇号,php,html,Php,Html,我正在做$mysqliConnection->query($query) 其中,$query具有…值(“地狱之刃:塞努阿的牺牲”,now())… 而在数据库中,它就像地狱之刃:塞努亚';s牺牲 为什么会发生这种情况 我甚至用 mysqli_set_charset($mysqliConnection, 'utf8'); $mysqliConnection->query('SET NAMES `utf8` COLLATE `utf8_polish_ci`'); 还是一样的问题。搜索

我正在做
$mysqliConnection->query($query)

其中,
$query
具有
…值(“地狱之刃:塞努阿的牺牲”,now())…

而在数据库中,它就像地狱之刃:塞努亚';s牺牲

为什么会发生这种情况

我甚至用

mysqli_set_charset($mysqliConnection, 'utf8');
$mysqliConnection->query('SET NAMES `utf8` COLLATE `utf8_polish_ci`');
还是一样的问题。搜索了许多主题,但找不到有关此主题的确切信息,也无法修复它

更多代码:

$gameTitlesImploded = implode(', ', array_column($gamesArray, 'gamesQuery'));
$insertGamesQuery = "INSERT IGNORE INTO games(name, created_at) VALUES {$gameTitlesImploded}";
echo $insertGamesQuery;
die();
$mysqliConnection->query($insertGamesQuery);
其中,
insertGamesQuery
在回显后是

将忽略插入游戏(名称、创建时间)值(“地狱之刃:塞努亚的牺牲”,now()),(“……”

源代码:

INSERT IGNORE INTO games(name, created_at) VALUES ("Hellblade: Senua's Sacrifice", now()),

解决办法是

$title = html_entity_decode($title, ENT_QUOTES, 'utf-8');
在回显变量后,浏览器中似乎有一个撇号,但实际上有实体
#039


html\u entity\u decode
是不够的。我必须应用
ENT\u引号

你是在值上使用
htmlentities()
还是类似的函数?@Qirel不,它直接进入query()函数,就像你在这里看到的那样“where$query has[…]”-使用
Hellblade:Senua的牺牲
实际上是在脚本中硬编码的?或者来自一个变量?如果是后者,那么该变量来自何处?@pakiecnew,那么代码中的某些内容(您没有向我们展示)正在执行此操作。如果不查看您的实际代码,我们将无法帮助。@pakiecnew您仍然需要显示
$gamesArray
是如何填充的。请注意,如果您要回显到浏览器,html编码的字符串将显示为常规字符,即使该字符串具有html实体。您需要查看源代码以查看它是否为html实体或文字单引号/撇号…现在开始参数化查询