Saltar al contenido

fetch_array

En este artículo, nos centraremos en la función mysqli_fetch_array() de PHP, que se utiliza para obtener una fila de un conjunto de resultados de MySQLi como un array asociativo, numérico o combinado. Proporcionaremos una descripción general de la función, sus parámetros y ejemplos prácticos.

Introducción a la función mysqli_fetch_array()

La función mysqli_fetch_array() es una función integrada de PHP que recupera una fila de un conjunto de resultados de MySQLi. Devuelve la fila como un array asociativo, un array numérico o ambos, dependiendo del parámetro result_type. Esto es particularmente útil cuando necesitas iterar sobre los resultados de una consulta y acceder a las columnas por nombre o índice.

Cómo usar la función mysqli_fetch_array()

Usar mysqli_fetch_array() requiere un conjunto de resultados de MySQLi válido. Por lo general, se utiliza dentro de un bucle while para iterar por todas las filas. A continuación, se muestra un ejemplo completo con manejo básico de errores:

Uso básico con un bucle while

php
<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
    die("Connection failed: " . mysqli_connect_error());
}

$query = "SELECT * FROM my_table";
$result = mysqli_query($mysqli, $query);
if (!$result) {
    die("Query failed: " . mysqli_error($mysqli));
}

// Fetch rows as an associative array
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo $row['column1'] . " - " . $row['column2'] . "<br>";
}

mysqli_close($mysqli);
?>

En este ejemplo, establecemos una conexión y ejecutamos una consulta. Verificamos errores de conexión y de consulta para evitar fallos silenciosos. El bucle while llama a mysqli_fetch_array() repetidamente, devolviendo false cuando ya no existen más filas. La constante MYSQLI_ASSOC garantiza que las columnas se accedan por nombre.

Modos de obtención y uso avanzado

El segundo parámetro de mysqli_fetch_array() controla cómo se devuelve la fila. Hay tres constantes que puedes usar:

  • MYSQLI_ASSOC – Devuelve un array asociativo (nombres de columna como claves).
  • MYSQLI_NUM – Devuelve un array numérico (índices de columna como claves).
  • MYSQLI_BOTH – Devuelve tanto arrays asociativos como numéricos. Este es el modo predeterminado si se omite el segundo parámetro.

A continuación, se muestra cómo obtener una fila como un array numérico:

Obtención de array numérico

php
<?php
// ... connection and query setup ...
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
    echo $row[0] . " - " . $row[1] . "<br>";
}
?>

Al usar MYSQLI_BOTH, cada columna aparece dos veces en el array: una vez por nombre y otra por índice. Esto puede ser útil para código heredado, pero aumenta el uso de memoria, por lo que generalmente se prefiere MYSQLI_ASSOC o MYSQLI_NUM para aplicaciones modernas.

Conclusión

La función mysqli_fetch_array() proporciona una recuperación flexible de filas de los conjuntos de resultados de MySQLi. Al comprender sus modos de obtención e incorporar un manejo básico de errores, puedes escribir consultas de base de datos más robustas y eficientes en PHP.

Práctica

¿Qué hace la función mysqli_fetch_array() en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.