"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué mi consulta MySQLi solo devuelve una fila cuando espero varias?

¿Por qué mi consulta MySQLi solo devuelve una fila cuando espero varias?

Publicado el 2024-11-18
Navegar:488

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

Identificación de la causa raíz de la consulta MySQLi que recupera solo una fila

Cuando se enfrenta el problema en el que una consulta MySQLi devuelve solo una fila a pesar de esperar varias , es esencial examinar el código involucrado. En el caso proporcionado, la consulta tiene como objetivo recuperar datos de las tablas sb_buddies y sb_users.

El código selecciona columnas de ambas tablas y las une según el campo buddy_requester_id. Sin embargo, la línea siguiente intenta recuperar solo una fila usando $request_list_result->fetch_array().

Solución: usar fetch_all() para recuperar varias filas

Para recuperar varias filas, es necesario emplear el método 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'];

Explicando la diferencia

  • fetch_array() devuelve una sola fila como una matriz asociativa, donde la columna los nombres sirven como claves.
  • fetch_all() devuelve todas las filas como una matriz de matrices asociativas, cada una de las cuales representa una sola fila.

Al utilizar fetch_all(), el código ahora puede acceder los datos de todas las filas coincidentes, resolviendo el problema de obtener solo una fila.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3