我对分页有一些问题。我直接在我的数据库控制台上执行查询并且工作正常..
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;
}
}
我做错了什么?
答案 0 :(得分:2)
您只返回第一行,因为您只调用fetch()
一次。在循环中调用它并将结果累积到数组中:
while ($row = $return->fetch()) {
// Append the current row onto your array
$this->minis[] = $row;
}
return true;
答案 1 :(得分:1)
PDOStatement::fetch
- 从结果集中获取 下一行
您只需通过一次调用fetch()
即可返回第一个结果。您需要致电fetch
,直到没有更多结果。再次阅读手册中的示例。
答案 2 :(得分:1)
$this->minis = $return->fetchAll();
它将返回多维数组中的所有数据。