我有一个问题
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/