Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环时php pdo查询出现问题_Php_Sql_Pdo - Fatal编程技术网

循环时php pdo查询出现问题

循环时php pdo查询出现问题,php,sql,pdo,Php,Sql,Pdo,我有一个db表,它有两列,id和category。我的目标是使用while循环将db中的类别回音到li和锚中 代码如下: <ul class="nav navbar-nav"> <?php $connect = new db(); $stmt = $connect->link->query("SELECT * FROM categories")->fetchall();

我有一个db表,它有两列,id和category。我的目标是使用while循环将db中的类别回音到li和锚中

代码如下:

<ul class="nav navbar-nav">
                    <?php $connect = new db();
                          $stmt = $connect->link->query("SELECT * FROM categories")->fetchall();
                          while($row = $stmt){
                            $category = $row["category"];
                            echo "<li><a href='#'>{$category}</a></li>";
                          }

                    ?>
                </ul>

$stmt
是数据库中所有行的列表-使用
->fetchall()
获取查询结果-这意味着它是一个二维数组,其中的行由数字索引,每行都有字段名。所以你最好换一个

while($row = $stmt){
有一些东西会在结果上循环

foreach ( $stmt as $row ) {
如果需要使用while循环,则可以删除
fetchAll
,并使用while循环使用
fetch()
…一次提取每一行

$stmt = $connect->link->query("SELECT * FROM categories");
while($row = $stmt->fetch()){

显示
var\u dump($row)
Try$row->categoryBarmar的输出我编辑了原始文章以显示var dump。bassem samir,谢谢,但它不起作用,我想避免使用foreach循环,因为它显然占用了更多的内存空间。另外,我需要练习while循环和pdo。有人有关于while循环的解决方案吗?我更新了while循环,但是
foreach()
占用更多内存的问题不值得担心。谢谢@nigel Ren。这对我很有帮助,请考虑把它标记为“回复”。
$stmt = $connect->link->query("SELECT * FROM categories");
while($row = $stmt->fetch()){