PDO 中的 'fetch' 只得到一个结果

#39;fetch#39; in PDO gets only one result(PDO 中的 fetch 只得到一个结果)
本文介绍了PDO 中的 'fetch' 只得到一个结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有这个代码:

$sql = new PDO('mysql:host=localhost;dbname=b', 'root', 'root');
$f = $sql->query('select * from user');
$sql->setFetchMode(PDO::FETCH_ASSOC);

while($row = $f->fetch()){
     print_r($row);
}

输出是

Array
(
    [id] => 1
    [name] => turki
    [mail] => ablaf
    [pass] => 144
)
Array
(
    [id] => 2
    [name] => wrfwer
    [mail] => fwerf
    [pass] => werf
)

这就是我真正想要的.但是如果我这样做

And that's what I really want. But if I do this

<?php
    $sql = new PDO('mysql:host=localhost;dbname=b', 'root', 'root');
    $f = $sql->query('select * from user');
    $f->setFetchMode(PDO::FETCH_ASSOC);
    print_r($f->fetch());
?>

输出是

Array
(
    [id] => 1
    [name] => turki
    [mail] => ablaf
    [pass] => 144
)

它有一个结果,但我在表中有两行;这是为什么?

It has one result, but I have two rows in the table; why is that?

推荐答案

应该使用 Fetch 来显示数据库结果中的下一行.

Fetch should be used to display the next row from the database result.

要获取所有行,您应该使用 fetchAll();

To get all rows, you should use fetchAll();

  • PDOStatement::fetch — 从结果集
  • PDOStatement::fetchAll() — 返回包含结果集的所有行
  • PDOStatement::fetch — Fetches the next row from a result set
  • PDOStatement::fetchAll() — Returns an array containing all of the result set rows

将您的示例更改为:

<?php
    $sql = new PDO('mysql:host=localhost;dbname=b', 'root', 'root');
    $f = $sql->query('select * from user');
    $f->setFetchMode(PDO::FETCH_ASSOC);
    print_r($f->fetchAll());
?>

或者如果你想使用 PDOStatement::fetch 来

or if you want use PDOStatement::fetch to

<?php
    $sql = new PDO('mysql:host=localhost;dbname=b', 'root', 'root');
    $f = $sql->query('select * from user');
    while($row = $sth->fetch(PDO::FETCH_ASSOC))
    {
      print_r($row);
    }
?>

这篇关于PDO 中的 'fetch' 只得到一个结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Why can#39;t I update data in an array with foreach loop?(为什么我不能用 foreach 循环更新数组中的数据?)
Foreach for arrays inside of an array(Foreach 用于数组内的数组)
PHP array get next key/value in foreach()(PHP 数组在 foreach() 中获取下一个键/值)
Using preg_match on a multidimensional array to return key values arrays(在多维数组上使用 preg_match 返回键值数组)
php foreach as key, every two number as a group(php foreach 为key,每两个数字为一组)
Treat a PHP class that implements Iterator as an array(将实现 Iterator 的 PHP 类视为数组)