Maison >développement back-end >tutoriel php >Pourquoi ma requête MySQLi ne renvoie-t-elle qu'une seule ligne alors que j'en attends plusieurs ?

Pourquoi ma requête MySQLi ne renvoie-t-elle qu'une seule ligne alors que j'en attends plusieurs ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-06 10:32:11359parcourir

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

Identifier la cause première de la récupération d'une seule ligne par une requête MySQLi

Lorsque vous êtes confronté au problème où une requête MySQLi ne renvoie qu'une seule ligne alors qu'elle en attend plusieurs , il est essentiel d'examiner le code impliqué. Dans le cas fourni, la requête vise à récupérer les données des tables sb_buddies et sb_users.

Le code sélectionne les colonnes des deux tables et les joint en fonction du champ buddy_requester_id. Cependant, la ligne suivante tente de récupérer une seule ligne à l'aide de $request_list_result->fetch_array().

Solution : utiliser fetch_all() pour récupérer plusieurs lignes

Pour récupérer plusieurs lignes, il faut utiliser la fonction fetch_all() méthode :

$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'];

Expliquer la différence

  • fetch_array() renvoie une seule ligne sous forme de tableau associatif, où les noms de colonnes servent de clés.
  • fetch_all() renvoie toutes les lignes sous la forme d'un tableau de tableaux associatifs, chacun représentant un seul row.

En utilisant fetch_all(), le code peut désormais accéder aux données de toutes les lignes correspondantes, résolvant ainsi le problème de l'obtention d'une seule ligne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn