php - PDO - 将 while 语句与相同变量相乘

标签 php mysql pdo

我目前正在学习 PDO。我试图使用相同的变量来进行乘法 while 语句。现在,当我使用普通MySQL时,我只使用mysql_data_seek();函数,以便做到这一点。

我有这个代码:

$r = $dbh->prepare("SELECT * FROM memberships ORDER by sort DESC");
$r->bindParam(':id', $userdata['membership']);
$r->execute();

<?php while($upgData = $r->fetch(PDO::FETCH_ASSOC)): ?>
 echo $upgData['id'];
<?php ?>

然后再往下看代码,我想再次使用它:

<?php while($upgData = $r->fetch(PDO::FETCH_ASSOC)): ?>
 echo $upgData['name'];
<?php ?>

尽管第二次没有打印出任何内容。这是为什么?

最佳答案

获取指针已到达对象末尾。使用 MySQLi 或 MySQL 扩展,可以将此指针重置为第一个元素,但 PDO 似乎不提供此类功能 AFAIK。一种方法是首先获取数组中的所有值。

$rows = $r->fetchAll();

然后迭代该数组两次

foreach ($rows as $r) {
    echo $r['name'];
}

foreach ($rows as $r) {
    echo $r['name'];
}

使用 MySQLi 或 MySQL 扩展,可以将此指针重置为第一个元素,但据我所知,PDO 似乎不提供此类功能。

关于php - PDO - 将 while 语句与相同变量相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311838/

相关文章:

php - symfony 2.8.8 如何检查框架连接到mysql(mariadb)

php pdo在mvc中显示rowCount

php - 修改后的 PDO 和 lastInsertId()

php - 从数据库中检索下拉选项

php - 表单提交对话框

mysql - 如何在 h2 数据库中插入特定的 UUID?

mysql - SQL 查询到 Eloquent

php - 如何在php中查看类redis的功能

php - 插入查询直接在 MySQL 中工作,而不是通过 Code Igniter 它传递一个空值

php - 如何使用 PHP 将日期转换为 UTC 午夜