【发布时间】:2012-09-14 02:44:29
【问题描述】:
我正在开发一个应用程序,通过多个不同的条件搜索用户。可用条件之一是按名称搜索。名称存储在数据库中,去除了 HTML 字符,例如。 ' 存储为 '。这样做的问题是,如果用户通过输入常规英文名称的名称进行搜索,它会在数据库中查找英文名称而不是 HTML 剥离的名称。我尝试过使用 htmlspecialchars($string, ENT_QUOTES),但由于某种原因,它并不总是正确地替换单引号。谁能想到为什么会发生这种情况,或推荐更好的方法?谢谢!
【问题讨论】:
-
引号应该使用数据库供应商特定的转义函数进行转义。
-
ENT_QUOTES是一个常量,它不需要$前缀。也就是说,查看进行' -> '转换的代码,并在代码中重用相同的逻辑。并希望转换过去、现在和将来都是一致的。 -
我仍然无法让它工作。
htmlentities_decode($string)甚至无法将'解码回单个撇号。字符编码会以任何方式影响这一点吗?
标签: php sql database web-applications validation