我不太确定为什么会遇到这个问题,但目前我被阻止了。我遇到的问题是,当使用 Doctrine 插入 MySQL 时,某些值会自动转义。例如,在用户输入诸如 he/she
之类的内容的表单上,存储到 MySQL 表中的数据是 he\/she
。
现在的问题是,有时用户会使用搜索功能,但使用 he/she
不会给他们任何结果。我该如何解决这个问题?我正在考虑转义传递给 LIKE 函数的字符串上的字符,这是正确的方法吗?我认为如果用户具有诸如 this is 50%
之类的值,也会发生同样的问题(百分比在提供给 LIKE
之前也需要转换)功能?)
最佳答案
您需要从根本上解决这个问题 - 数据永远不应该进入您的数据库。造成这种情况的可能原因是 Web 服务器配置错误,该服务器仍然具有 magic quotes使用 MSSQL 模式启用,或者使用尝试以(非常)错误的方式进行输入清理的库。您应该永远想要在搜索端修复这个问题 - 一旦您开始修补损坏的数据,您就会陷入无尽的问题污水池。
调试数据出错的原因,并修复它。
关于php - 如何比较 PHP/MySQL 中的转义字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446511/