【问题标题】:PDO - Multiply while statements with same variablePDO - 将具有相同变量的语句相乘
【发布时间】:2013-12-01 11:56:28
【问题描述】:

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

虽然,第二次没有打印出来。这是为什么呢?

【问题讨论】:

标签: php mysql pdo


【解决方案1】:

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

$rows = $r->fetchAll();

然后遍历该数组两次

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

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

使用 MySQLi 或 MySQL 扩展可以将此指针重置为第一个元素,但 PDO 似乎不提供这样的功能 AFAIK。

【讨论】:

    猜你喜欢
    • 2022-11-18
    • 2019-07-09
    • 1970-01-01
    • 2022-08-23
    • 2017-03-26
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多