这个想法一直困扰着我。在获取行的普通方式中,我将使用以下 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/