问题描述
|
所以我试图做一个类似的查询并获得一些结果,但是我传递的文本中有一些打破查询的特殊字符。
如果我们假设文本是这样的:
var test `select` `query`=\"$newval + \"dsadsa$ ? \"$test ?
而且我在列中也有与VARCHAR完全相同的文本
然后执行查询
SELECT * FROM table WHERE column LIKE \'%$text%\'
说没有行要返回。
编辑:当我在数据库中发布数据时,我只是使用MysqL真正的转义字符串,当我在单击搜索的地方显示文本时,我将htmlentities放在文本上
然后我将其从0替换为50并执行搜索查询
解决方法
您可以使用mysql_real_escape_string()来转义字符串中的任何特殊字符。
, 尝试避免将变量直接写入字符串,这可能会导致问题(+确实不是很好):
mysql_query(\"SELECT * FROM table WHERE column LIKE \'%\" . $text . \"%\'\");
当然,请确保$text
变量是正确的(echo $text
),转义字符也可能会引起问题,当然也可能有许多其他原因导致问题(这取决于应用程序的体系结构-在ѭ3work上工作)。