php - 为什么这个 sql 不工作?

标签 php phpunit

我有一个问题

public static function TestQuery(

 $start=0,
 $limit=0){


 $sql = "
SELECT     count(*) AS total
FROM    db.table1
JOIN    db.table2
 ON     table1.fieldID = {$fieldID}

AND    table2.assigned = 'N'";



  $qry = new SQLQuery;
  $qry->query($sql);
  if($row = $qry->fetchRow()){
   $total = intval($row->total);
  }

 return $total;

} 

它工作正常但是当我如下添加限制时,它不起作用并给我错误

public static function TestQuery(

 $start=0,
 $limit=0){


 $sql = "
SELECT     count(*) AS total
FROM    db.table1
JOIN    db.table2
 ON     table1.fieldID = {$fieldID}

AND    table2.assigned = 'N'";

//this fails   
if($recordlimit > 0) $sql .= "LIMIT {$startRecord}, {$recordLimit} ";  
//  
  $qry = new SQLQuery;
  $qry->query($sql);
  if($row = $qry->fetchRow()){
   $total = intval($row->total);
  }

 return $total;

} 

任何帮助将不胜感激

最佳答案

在LIMIT前加一个空格:

" LIMIT {$startRecord}, {$recordLimit} "

如果没有空格,你的 sql 将导致语法错误。

编辑:这个答案不正确!如果 LIMIT 前没有空格,MySQL 不会出错(但是,较早版本的 phpmyadmin 会错误地解析此类 sql)。

关于php - 为什么这个 sql 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2677724/

相关文章:

php - UNIX_TIMESTAMP 使用查询

PHP longblob 到 img

php - 在 Windows 8 PC、Xampp 中安装 Symfony 2.8

PHPUnit_Extensions_Database_Testcase 返回未定义的方法

PHPUnit - 模拟特征

php - CKeditor 删除多余的空格

javascript - JSON 到 PHP API 没有发生

bash - 来自Alpine的Docker phpunit:3.7输入shell CLI sh或bash

session - 如何通过phpunit上的所有测试保留 session ?

php - 使用 PHPUnit 测试具有多个参数的构造函数