我在我的数据库名为'Description'的列上使用了htmlspecialchars。
我的网站上有搜索页面,它使用这个mysql_query句子返回结果:
“SELECT * FROM db.db WHERE NameOfEvent LIKE'%”。$ q。“%'”
我在数据库中添加了以下字符串:“test&test
”
因为我使用了htmlspecialchars,在数据库中它看起来像这样:“test&test
”
如果我在搜索中键入'a',测试和测试将是结果之一...我该如何避免?
答案 0 :(得分:3)
请勿使用htmlspecialchars()
保存您的值。这应该用于输出/显示。
如果必须,请考虑在附加列中执行此操作,即formatted_description
。这样,您仍然可以搜索description
。
可能不是你想要的答案。但...
答案 1 :(得分:1)
您应该以未编码的方式将数据存储在数据库中,然后在显示之前使用htmlspecialchars。
目前看来,你必须通过箍来搜索'%a%'才能忽略&
。
答案 2 :(得分:1)
您无法更改MySQL将字符串搜索到表格的方式。您只需更改在字段中保存字符串的方式即可。 也许您可以尝试在不使用htmlspecialchars()的情况下将文本保存在Desfription flield中。并在从db中提取后立即使用它。