Отсутствие данных с помощью SELECT в PHP

0

Я не могу найти проблему здесь:

При наборе текста на моем терминале:

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

Результатом var_dump на php-странице является:

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

Поэтому у меня есть только первый album_id (3), но не второй (4).

Что мне не хватает?

  • 0
    Вы хотите использовать fetchAll() , поскольку fetch() возвращает только первый результат.
Теги:
database
arrays
pdo

2 ответа

1
Лучший ответ

Вы выбираете только 1 строку, используя fetch(). Если вы хотите получить все строки, вы можете использовать:

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

Имея это:

$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;
}
  • 0
    Я думал fetch () возвращает все данные. Работает хорошо с fetchAll (), спасибо
  • 0
    @AdrianSalas уверен, что нет проблем, Джереон был первым, кто ответил, что эти ответы помогли

Ещё вопросы

Сообщество Overcoder
Наверх
Меню