php - 每次页面刷新后推进内部行指针

标签 php mysql

这个想法一直困扰着我。在获取行的普通方式中,我将使用以下 PDO 代码:

$dbh = new PDO('mysql:host=localhost;dbname=odesk', 'root', '123456');
$sth = $dbh->prepare("select * from foo");
$sth->execute();

while($result = $sth->fetch(PDO::FETCH_ASSOC)){
    $bar = $result['bar'];

    echo $bar . '   ' . PHP_EOL;
}

并逐行获取行。我用来获取行的 PHP 脚本驻留在服务器端,而我只有客户端,我只有一个浏览器。

是否有一种方法可以用来在每次页面刷新后推进内部行指针,以便客户端在每次页面刷新完成时都能看到一条新记录?

我的自动递增列没有任何帮助,因为它被严重编辑并且删除了一些行。

最佳答案

(这不是 mysqli 代码,而是 pdo)

“从 foo limit 2,1 选择 *”;

获取第 3 行

“从 foo limit 3,1 选择 *”;

获取第 4 行

“从 foo limit 4,1 中选择 *”;

获取第 5 行

因此,如果您可以将列表中的下一个数字传递到下一页,这就是它将从数据库中获取的内容。有多种方法可以做到这一点, session 等,或使用 url 字符串 (GET)

yourpage.php?next=7

您所要做的就是增加下一页

'select * from foo limit ' . (int)$_GET['next'] . ',1';

这不是一个完整的经过测试的解决方案,更多地将其视为伪代码,只是为了展示它是如何完成的。

(int) 用于将传入变量类型转换为整数,这只是保护数据库免受 sql 注入(inject)攻击的一种穷人方式,在现实生活中,您当然会使用 Mysql 或 PDO 准备好的语句,'当然,您会!

关于php - 每次页面刷新后推进内部行指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27193294/

相关文章:

PHP 函数无法识别不同的语言

php - proc_terminate() 即使经过很多时间也不会终止进程

php 搜索查询仅输出两个结果...而不是整行

php - 存储数据库凭证——PDO 的最佳实践

mysql - 我的查询在 mysql 中工作,但不适用于 laravel eloquent

mysql - 建议MySql表设计

php - 用于考勤的 MySQL 和 PHP

php - Laravel 5 资源 Controller

mysql - 通过 soundex() 搜索名称并同时搜索部分名称 mysql

mysql - 更新MySQL字段;条件 = 两个数字之间的字符串字段