gpt4 book ai didi

php - PHP MySQL 语句中的特殊字符

转载 作者:行者123 更新时间:2023-11-29 14:20:43 25 4
gpt4 key购买 nike

我在 MySQL 数据库中存储了一些特殊字符。特别是®。我想选择带有这些字符的所有条目。我目前正在使用这个语句:

mysql_query("SELECT * FROM table WHERE description LIKE '%®%' OR name LIKE '%®%'");

它返回 0 个条目。当我尝试使用 %a% 进行某些操作时,它会返回很多内容,所以我知道一切都正确,这只是某种字符集问题或其他问题。

当我回显“®”时,它返回“å¡”。

此外,当我在 phpmyadmin 中执行完全相同的查询时,它可以正常工作。请帮忙!

最佳答案

阅读本文对您非常有帮助

只需将这些符号添加到文本中,然后将其作为 SQL 查询执行即可:

INSERT INTO tbl_name VALUES ("Here's my text: ©®");

当您想要显示它时,网站不会对这些符号执行任何操作(但请记住至少转义 <、>、&(使用 htmlspecialchars()),因为这些符号在 XML/SGML (HTML) 中具有特殊含义文件)

PS。还要记住使用 mysql_real_escape_string() 对传递给 SQL 查询的文本进行转义,以避免任何 SQL 注入(inject)问题。如果您的服务器启用了 magic_quotes_gpc,请禁用它或至少将您的 GET/POST/COOKIE 数据过滤为其原始值。你应该始终有意识地逃避值(value)观。编辑:

根据您的评论...我不记得默认情况下是否启用 magic_quotes_gpc,但您可以轻松撤消魔术引号效果。在 PHP 代码的开头添加如下内容:

if (get_magic_quotes_gpc()) {
array_walk_recursive($_GET, 'stripslashes');
array_walk_recursive($_POST, 'stripslashes');
array_walk_recursive($_COOKIE, 'stripslashes');
}

现在每个 GPC 值应该始终是原始值 - 不带引号 - 因此您必须在将任何变量传递到查询之前手动转义它。

关于php - PHP MySQL 语句中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11799817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com