neden bu sql çalışmıyor?

3 Cevap php

Ben bir sorgu var

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;

} 

çalışıyor ama ben aşağıdaki gibi sınırı eklediğinizde, o işe yaramazsa ve bana hataları verir

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;

} 

Herhangi bir yardım takdir edilecektir

3 Cevap

LİMİT önünde bir boşluk koyun:

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

boşluk olmadan sql bir sözdizimi hatası neden olur.

Edit: Bu cevap doğru değil mi! MySQL (ancak, phpmyadmin önceki sürümleri, hatalı gibi SQL ayrıştırmak) LİMİT önce bir boşluk olmadan hata olmaz.

Sizin değişkenleri $ limiti denir ve $ start edilir:

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

Değiştirmeyi deneyin

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

Karşı

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

SQL birlikte ezilmiş oluyor ve kötü bir sözdizimi hatası almak gerekir gibi görünüyor, ve orada (görünüşte) değişken adlarını yanlış vardı.