PHP 获取数据两次

标签 php mysql mysqli prepared-statement fetch

我的函数看起来像那样。

 private function generateTree($courseID) {
        $q = "SELECT l.id, l.name AS lesson_name, c.name AS course_name FROM lessons AS l, courses AS c WHERE l.course_id=c.id AND c.id=?";
        $stmt = $this->db->prepare($q);
        $stmt->bind_param("i", $courseID);
        $stmt->execute();
        $stmt->store_result();
        if ($stmt->num_rows > 0) {
            $stmt->bind_result($id, $lName, $cName);
            echo "<li> <a href='#'>$cName</a> <ul>";
            while ($stmt->fetch()) <====HERE!!!
                echo "<li> <a href='?course=$courseID&lesson=$id'> $lName </a></li>";
            echo "</ul> </li>";
        }
    }

问题是我开始在 while 条件内获取数据,但在 while 之前我也需要它。我可以两次获取数据吗?还有其他建议吗?

最佳答案

已经四年了,但如果有人像我一样偶然发现这个问题:

while ($stmt->fetch()) {
  // do your thing
}

$stmt->data_seek(0);

while ($stmt->fetch()) {
  // do something other
}

您可以 read documentation here

关于PHP 获取数据两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11526867/

相关文章:

mysql - 在 MySQL 数据库中查找特定值

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - 如何检测我使用 Bootstrap 数据表编辑过的单元格?

php - 如何在 while 循环中保留 mysqli_fetch_array() 值?

php页面查询需要15分钟,phpmyadmin上同样的查询需要3秒

mysql - 如何将字符串转换为小数?

php - Jquery AJAX POST 没有将任何东西传递给 PHP

php - mysql md5(md5 ('pass' ) + salt) 不等于 php md5(md5 ('pass' ).salt)

PHP mysqli 查询不返回任何结果

php - 使用 PHP 和 MYSQL 进行过滤