PHP mysql_query返回解码的编码数据

时间:2011-05-11 22:17:04

标签: php mysql search

我在我的数据库名为'Description'的列上使用了htmlspecialchars。

我的网站上有搜索页面,它使用这个mysql_query句子返回结果:
“SELECT * FROM db.db WHERE NameOfEvent LIKE'%”。$ q。“%'”

我在数据库中添加了以下字符串:“test&test” 因为我使用了htmlspecialchars,在数据库中它看起来像这样:“test&test

如果我在搜索中键入'a',测试和测试将是结果之一...我该如何避免?

3 个答案:

答案 0 :(得分:3)

请勿使用htmlspecialchars()保存您的值。这应该用于输出/显示。

如果必须,请考虑在附加列中执行此操作,即formatted_description。这样,您仍然可以搜索description

可能不是你想要的答案。但...

答案 1 :(得分:1)

您应该以未编码的方式将数据存储在数据库中,然后在显示之前使用htmlspecialchars。

目前看来,你必须通过箍来搜索'%a%'才能忽略&

答案 2 :(得分:1)

您无法更改MySQL将字符串搜索到表格的方式。您只需更改在字段中保存字符串的方式即可。 也许您可以尝试在不使用htmlspecialchars()的情况下将文本保存在Desfription flield中。并在从db中提取后立即使用它。