我发现以下代码可以从 php var 中删除除字母和数字以外的所有内容,完美!
$string = "remove ever^&thing but *&^*&%£ letters & numbers*&^*";
$cleansedstring = preg_replace('#\W#', '', $string);
echo $cleansedstring;
但我想使用相同的规则在 mysql 中查询列。目的是从等式中删除所有和号、撇号、连字符等。
现在我使用一些丑陋的 REPLACE 语句!
AND Replace(Replace(Replace(Replace(Replace(MYColumn, '&', ''), '-', ''), ' ', ''), '(', ''), ')', '') =
我想要一个仅查看数字和字母的防弹查询!
:)
编辑:我想我应该进一步解释我的问题,也许你们中的一个人可以提出其他建议....
我通过提取较长的公司名称并清理它们以获得 seo 友好的 URL,在我的网站上生成链接。假设我们有“Bill & Ben 的花盆/花园服务”,我最终指向他们页面的 URL 看起来像/bill-bens-flower-pot-garden-service.htm
该 URL 是重写的 URL,因此实际页面类似于 company.php?name=bill-bens-flower-pot-garden-service
我需要获取“名称”并查询数据库以返回他们的公司详细信息。但是得到:
bill-bens-flower-pot-garden-service
返回详细信息:
Bill & Ben 的花盆/园艺服务
看起来并不总是防弹的。
感觉我的代码有点困惑,因为我到处都在做多少次替换。我的理论是只去除所有非字母和数字数据并以这种方式比较字符串:
WHERE Company = 'billbensflowerpotgardenservice' - 但我似乎无法在字段名称本身上这样做?
任何建议!
最佳答案
从 mysql 5.1 开始你可以使用正则表达式。这是它的文档页面: http://dev.mysql.com/doc/refman/5.1/en/regexp.html
关于php - 我可以仅通过数据中的字母和数字查询列吗?比如 preg_replace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973575/