почему этот sql не работает? - PullRequest
3 голосов
/ 20 апреля 2010

У меня есть запрос

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;

} 

Любая помощь будет оценена

Ответы [ 4 ]

4 голосов
/ 20 апреля 2010

Поставьте пробел перед LIMIT:

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

без места, которое вы sql, приведет к синтаксической ошибке.

Редактировать: Это неправильный ответ! MySQL не выдаст ошибку без пробела до LIMIT (однако, более ранние версии phpmyadmin будут неправильно анализировать такой sql).

3 голосов
/ 20 апреля 2010

Ваши переменные называются $ limit и $ start:

if($limit > 0) $sql .= " LIMIT {$start}, {$limit} "; 
2 голосов
/ 20 апреля 2010

Попробуйте изменить

if($recordlimit > 0) $sql .= "LIMIT {$startRecord}, {$recordLimit} ";

на

if($recordlimit > 0) $sql .= " LIMIT {$start}, {$limit} ";

Похоже, ваш SQL сжимается вместе и должен иметь неправильную синтаксическую ошибку, и вы ошиблись (на первый взгляд)там имена переменных.

0 голосов
/ 20 апреля 2010

Неправильные переменные

if($recordlimit > 0) $sql .= "LIMIT {$startRecord}, {$recordLimit} ";

Решены Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...