1

我发现以下代码从 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,在我的网站上生成链接。所以说我们有“比尔和本的花盆/花园服务”,我最终到他们页面的 URL 看起来像 /bill-bens-flower-pot-garden-service.htm

该 URL 是一个重写的 URL,因此实际页面类似于 company.php?name=bill-bens-flower-pot-garden-service

我需要获取“名称”并查询数据库以返回他们的公司详细信息。但是得到:

比尔本斯花盆花园服务

返回以下详细信息:

比尔和本的花盆/花园服务

似乎并不总是防弹的。

感觉我的代码在我到处进行的替换中有点混乱。我的理论是去掉所有非字母和数字数据并以这种方式比较字符串:

WHERE Company = 'billbensflowerpotgardenservice' - 但我似乎无法在字段名称本身上这样做?

有什么建议么!

4

1 回答 1

0

从 mysql 5.1 开始,您可以使用正则表达式。这是文档页面:http: //dev.mysql.com/doc/refman/5.1/en/regexp.html

于 2012-08-15T17:02:36.047 回答