【问题标题】:Missing data with a SELECT in PHP在 PHP 中使用 SELECT 丢失数据
【发布时间】:2015-03-12 03:30:26
【问题描述】:

我在这里找不到问题:

在我的终端上输入时:

SELECT album_id FROM users_albums WHERE user_id=1;

我在终端上有这个:

专辑编号

    3
    4

(2 法分)

这是我的目标结果。

但是当我想使用 PHP 获得相同的结果时,这样做:

$albumsID = $this->_db->query("SELECT album_id FROM users_albums WHERE user_id=1");

$donnes = $albumsID->fetch(PDO::FETCH_ASSOC);

var_dump($donnes);

php页面中var_dump的结果是:

array(1) { ["album_id"]=> int(3) }

所以我只有第一个 album_id (3),但没有第二个 (4)。

我错过了什么?

【问题讨论】:

  • 你想使用fetchAll(),因为fetch()只返回第一个结果。

标签: php arrays database postgresql pdo


【解决方案1】:

您仅使用fetch() 获取 1 行。如果要获取所有行,可以使用:

$donnes = $albumsID->fetchAll(PDO::FETCH_ASSOC);

【讨论】:

    【解决方案2】:

    有了这个:

    $donnes = $albumsID->fetch(PDO::FETCH_ASSOC);
    

    这只返回一行。你实际上需要循环它:

    while($donnes = $albumsID->fetch(PDO::FETCH_ASSOC)) {
        $id = $donnes['album_id'];
        echo $id;
    }
    

    另外,->fetchAll() 也将实现相同的目标:

    foreach($albumsID->fetchAll(PDO::FETCH_ASSOC) as $donnes) {
        $id = $donnes['album_id'];
        echo $id;
    }
    

    【讨论】:

    • 我认为 fetch() 返回所有数据。使用 fetchAll() 运行良好,谢谢
    • @AdrianSalas 肯定没有问题,jereon 是第一个回答的人,很高兴这些答案有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多