【问题标题】:Modify SQL SELECT statement with PHP用 PHP 修改 SQL SELECT 语句
【发布时间】:2011-01-15 20:24:38
【问题描述】:

如何最好地使用 PHP 将 SQL SELECT 语句的字段列表更改为 COUNT(*)?

例如

SELECT blah, blah, blah FROM tbl_blah WHERE blah;

SELECT COUNT(*) FROM tbl_blah WHERE blah

我已经考虑过 mysql_num_rows... 但我很确定编辑语句会更有效。我猜它可以用正则表达式解决......:S

【问题讨论】:

    标签: php sql regex


    【解决方案1】:

    最好的办法是将各个部分存储在单独的变量中,然后调用一个函数来合并它们:

    function makeSQL($fields, $tables, $conditions='')
    {
      $sql = "SELECT $fields FROM $tables";
      if ($conditions != '')
      {
        $sql .= " WHERE $conditions";
      }
      return $sql;
    }
    

    这样你就可以一次用正确的字段调用它,然后在下一次调用COUNT(*)

    【讨论】:

      【解决方案2】:

      您可以使用preg_replace()

      <?php
      $sql = "SELECT blah, blah, blah FROM tbl_blah WHERE blah;";
      
      $newSql = preg_replace(
          "/^SELECT (.*) FROM (.*)$/",
          "SELECT COUNT(*) FROM $2",
          $sql);
      
      echo $newSql;
      // SELECT COUNT(*) FROM tbl_blah WHERE blah;
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-19
        • 1970-01-01
        相关资源
        最近更新 更多