2

当我在查询之前以传统方式进行查询时,我一直在使用分页类,但现在我已经通过 $stmt->fetch() 语句使用准备好的语句进行查询,我现在不知道如何分页. 我一直在环顾四周并检查stackoverflow文献,似乎有一些现成的解决方案,一些命令或一些:sort-> stuff。

你如何对这个循环产生的内容进行分页?“准备好的语句世界”中有一些命令吗?任何显示的链接、页面或网页?

while( $stmt->fetch() )
    {
        printf("%s%s%s%s", $Email, $Webpage, $Telephone, $Mobile);
    }
4

1 回答 1

2

方法一get_result()::

*注意:此方法仅适用于 PHP >= 5.3,具有 mysqlnd 本机驱动程序。

假设这是使用 MySQLi 完成的,并且您已通过 将这些变量绑定为结果变量bind_result(),我将改为使用get_result()将其传输到 MySQLi 结果资源,并将行作为数组获取到包含所有行的数组中。然后使用通常用于数组数据的任何分页方法或插件:

// Don't use bind_result()...
// execute your statement
$stmt->execute();
// Get result set into a MySQLi result resource
$result = $stmt->get_result();

// array to hold all results
$rowset = array();
// And fetch with a while loop
while ($row = $result->fetch_assoc()) {
  $rowset[] = $row;
}

    var_dump($rowset);

现在$rowset用作 2D 数组,您可以使用任何在常规数组上操作的分页方法。

方法 2:构建一个带有绑定输出变量的数组

如果您没有 mysqlnd 本机驱动程序(因此无法使用get_result(),请继续使用bind_result()但将所有这些附加到数组中:

// array to hold all rows
$rowset = array();

// All results bound to output vars
while ($stmt->fetch()) {
  // Append an array containing your result vars onto the rowset array
  $rowset[] = array(
    'email' => $Email,
    'webpage' => $Webpage,
    'telephone' => $Telephone,
    'moblile' => $Mobile
  );
}
var_dump($rowset);
于 2012-05-29T20:27:03.050 回答