«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мой запрос MySQLi возвращает только одну строку, хотя я ожидаю несколько?

Почему мой запрос MySQLi возвращает только одну строку, хотя я ожидаю несколько?

Опубликовано 18 ноября 2024 г.
Просматривать:195

Why is My MySQLi Query Only Returning One Row When I Expect Multiple?

Определение основной причины запроса MySQLi, извлекающего только одну строку

При столкновении с проблемой, когда запрос MySQLi возвращает только одну строку, несмотря на ожидание нескольких строк , важно изучить задействованный код. В представленном случае запрос направлен на получение данных из таблиц sb_buddies и sb_users.

Код выбирает столбцы из обеих таблиц и объединяет их на основе поля Buddy_requester_id. Однако последующая строка пытается получить только одну строку, используя $request_list_result->fetch_array().

Решение: использование fetch_all() для получения нескольких строк

Чтобы получить несколько строк, необходимо использовать метод fetch_all():

$request_list_result = $mysqli->query("
SELECT buddy_requester_id, buddy_reciepient_id, user_id, user_fullname FROM sb_buddies
JOIN sb_users ON buddy_requester_id=user_id
WHERE buddy_status='0' AND buddy_reciepient_id='". get_uid() ."'");

$request_list_rows = $request_list_result->fetch_all();

echo $request_list_rows[0]['user_fullname'];

Объяснение разницы

  • fetch_array() возвращает одну строку в виде ассоциативного массива, где столбец имена служат ключами.
  • fetch_all() возвращает все строки как массив ассоциативных массивов, каждый из которых представляющее одну строку.

Благодаря использованию fetch_all() код теперь может получить доступ к данным для всех совпадающих строк, решая проблему получения только одной строки.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3