1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

问一个PHP的正则问题。

本帖由 lane2009-08-08 发布。版面名称:后端开发

  1. lane

    lane New Member

    注册:
    2005-09-05
    帖子:
    6,548
    赞:
    29
    事情是这样的,我在所有的字段两边都加上了‘`’这个符号,但是呢,SQL 的 select 里面还有些函数也被加上了。

    举例:(加上后的样子)
    SELECT `aaa`,`MAX(bbb) AS xxx`,`ccc`,`ddd`,`MAX(`eee`) AS yyy`,`fff`,`COUNT(`ggg`)`,`hhh`,`MAX(`iii`) AS `zzz`` FROM aaa_bbb

    所以,就需要把它替换掉,于是我写了这个:
    $select_fields = preg_replace("/`(\w+)\(`?(\w+)`?\)(\s+\w+\s+)?`?(\w+)?`?`/","\\1(`\\2`)\\3`\\4`",$select_fields);

    问题出来了,像COUNT(`ggg`)这种,没有后面的 AS xxx, 怎么能判断一下匹配到了才加 ‘`’呢?
     
  2. webren

    webren New Member

    注册:
    2008-09-06
    帖子:
    2,934
    赞:
    0
    搞php的上。