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
$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
// ... 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?