PHP 中 SELECT 的缺失数据

Missing data with a SELECT in PHP

我在这里找不到问题:

在我的终端上输入时:

SELECT album_id FROM users_albums WHERE user_id=1;

我在终端上有这个:

album_id

    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)。

我错过了什么?

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

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

有了这个:

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

这只returns排成一行。你实际上需要循环它:

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

此外,->fetchAll() 也将完成同样的事情 objective:

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