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实体或文字单引号/撇号…现在开始参数化查询