php mysql LIKE带有特殊字符无法正常工作

问题描述 投票:0回答:2

所以我试图做一个LIKE查询并获得一些结果,但我传递的文本有一些特殊的字符,打破了查询。

如果我们假设文本是这样的:

var test `select` `query`="$newval + "dsadsa$ ? "$test ?

并且我在列中的文本与VARCHAR完全相同

然后执行查询

SELECT * FROM table WHERE column LIKE '%$text%'

说没有行要返回。

编辑:当我在数据库中发布数据时,我只是使用mysql真正的转义字符串,当我显示文本,我点击搜索我把文本放在htmlentities然后我从0到50减去它并进行搜索查询

php mysql sql-like
2个回答
0
投票

您可以使用mysql_real_escape_string()来转义字符串中的任何特殊字符。


0
投票

尽量避免将变量直接写入字符串,这可能会导致问题(+它真的不好):

mysql_query("SELECT * FROM table WHERE column LIKE '%" . $text . "%'");

当然要确保$text变量真的是正确的(echo $text),字符转义也可能导致问题,当然还有许多其他因素导致问题(这取决于你的应用程序的架构 - 你在哪里使用$text)。

© www.soinside.com 2019 - 2024. All rights reserved.