我目前正在学习 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/