2016-12-19 4 views
-1
function manage_user($startFrom = 0, $itemPerPage = 5) 
    { 
     $_userData = array(); 
     $this->db->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false); 
     $query = $this->db->prepare("SELECT * FROM `user_info` LIMIT ?, ? WHERE `user_info`.`status` = ? "); 
     $query->execute(array($startFrom,$itemPerPage,'active')) or die(print_r($query->errorInfo(), true)); 
     $result = $query->fetchAll(\PDO::FETCH_ASSOC); 
     foreach ($result as $row) { 
      $_userData[] = $row; 
     } 
     return $_userData; 
    } 

限界を使用すればそれはうまくいく。where節を使うとエラーになる。
致命的なエラー:あなたはすべて一緒LIMITWHERE句を置き忘れてきた$ query->()を実行ライン
PDOどこで節と限界が一度に働くことができないか

+2

制限は、通常の構文のどこに続くかです。 (SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY、LIMIT)制限を移動して、 – xQbert

答えて

3

上の非オブジェクト
に()を実行するメンバ関数の呼び出し。 WHEREは、次のようにLIMIT句の前に来る必要があります。また、ORDER BYを除いたLIMIT節はほとんど意味がありません。

WHERE `user_info`.`status` = ? LIMIT ?, ? 
関連する問題