2016-12-19 78 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子句時會出錯。
致命錯誤:調用一個成員函數的execute()一個非對象
$查詢 - >執行()
PDO where子句和Limit一次無法工作

+2

限制在正常語法中的位置。 (SELECT,FROM,WHERE,GROUP BY,HAVING,ORDER BY,LIMIT)移動限制,使其位於 – xQbert

回答

3

您遺失LIMITWHERE條款都在一起。 WHERE應該在下面的LIMIT子句之前。此外,沒有ORDER BY的條款LIMIT意義不大。

WHERE `user_info`.`status` = ? LIMIT ?, ?