使用PDO与MySQL进行分页

时间:2012-03-10 02:31:08

标签: php mysql pagination pdo

我对分页有一些问题。我直接在我的数据库控制台上执行查询并且工作正常..

public function method($arg, $db)//$db is a PDO connection link
{
    try
    {
        $next = $arg * 9;
        $top = 9;
        $sql = "SELECT col01, col02, col03 ";
        $sql .= "FROM table ";
        $sql .= "ORDER BY col01 ASC ";
        $sql .= ($next === 0)? "LIMIT ".$top : "LIMIT ".$next.", ".$top;    
        $return = $db->prepare($sql);
        $return->execute();

        $return->setFetchMode(PDO::FETCH_ASSOC);
        $this->minis = $return->fetch();
        return true;
    }
    catch(PDOExcepction $e)
    {
        return false;
    }
}

我做错了什么?

3 个答案:

答案 0 :(得分:2)

您只返回第一行,因为您只调用fetch()一次。在循环中调用它并将结果累积到数组中:

while ($row = $return->fetch()) {
  // Append the current row onto your array
  $this->minis[] = $row;
}
return true;

答案 1 :(得分:1)

  

PDOStatement::fetch - 从结果集中获取 下一行

     

http://php.net/manual/en/pdostatement.fetch.php

您只需通过一次调用fetch()即可返回第一个结果。您需要致电fetch,直到没有更多结果。再次阅读手册中的示例。

答案 2 :(得分:1)

$this->minis = $return->fetchAll();

它将返回多维数组中的所有数据。