Paginate result set having written the query with prepared statements,(使用准备好的语句编写查询的分页结果集,)
问题描述
在以传统方式进行查询之前,我一直在使用分页类,但现在我已经开始使用准备好的语句进行查询,通过 $stmt->fetch() 语句,我不知道如何现在分页.我一直在环顾四周并检查 stackoverflow 文献,似乎有一些现成的解决方案,一些命令或一些:sort-> 东西.
I have been using paginating classes when I did before the query the traditional way, but now that I have come to do the queries using prepared statements, via the $stmt->fetch() statement, I don't know how to paginate now. I have been looking around and checking the stackoverflow literature and it seems that there is some kind of ready solution for it, some commands or some : sort-> stuff.
你如何对这个循环中的内容进行分页?准备好的语句世界"中是否有一些命令?任何显示的链接、页面或网络?
How do you paginate what comes out of this loop? Are there some commands within the "world of prepared statements"? any link, page or web where that is shown?
while( $stmt->fetch() )
{
printf("%s%s%s%s", $Email, $Webpage, $Telephone, $Mobile);
}
推荐答案
方法一:get_result()
:
*注意:此方法仅适用于 PHP >= 5.3,具有 mysqlnd 本机驱动程序.
Method 1: get_result()
:
*Note: This method only works with PHP >= 5.3, having the mysqlnd native driver.
假设这是使用 MySQLi 完成的,并且您已通过 bind_result()
将这些变量绑定为结果变量,我将改为使用 get_result()
将其传输到 MySQLi 结果资源中,并将行作为数组提取到包含所有行的数组.然后使用通常用于数组数据的任何分页方法或插件:
Assuming this was done with MySQLi and you have bound these variables as result vars via bind_result()
, I would instead use get_result()
to transfer it into a MySQLi result resource, and fetch the rows as arrays onto an array containing all rows. Then use any pagination method or plugin you would normally use on array data:
// 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);
var_dump($rowset);
现在将 $rowset
用作二维数组,您可以使用它使用任何对常规数组进行操作的分页方法.
Now use $rowset
as a 2D array, with which you can use any pagination method that operates on regular arrays.
如果您没有 mysqlnd 本机驱动程序(因此无法使用 get_result()
,请继续使用 bind_result()
,但将所有这些附加到数组中:
If you don't have the mysqlnd native driver (and hence cannot use get_result()
, continue using bind_result()
but append all of those onto an array:
// 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);
这篇关于使用准备好的语句编写查询的分页结果集,的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用准备好的语句编写查询的分页结果集,
基础教程推荐
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01