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

时间:2011-06-09 22:54:40

标签: php mysql sql-like

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

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

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

并且我在列中的文本与VARCHAR

完全相同

然后执行查询

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

表示没有要返回的行。

编辑:当我在数据库中发布数据时,我只需使用 mysql真实转义字符串,当我显示我点击搜索的文本时,我将 htmlentities 放在文本 那么我 substr 它从0到50并进行搜索查询

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

你可以使用mysql_real_escape_string()来逃避字符串中的任何特殊字符。