(PHP 5, PHP 7, PHP 8)
mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Recupera la siguiente fila de un conjunto de resultados como un array asociativo
Estilo orientado a objetos
Estilo por procedimientos
Devuelve una fila de datos del conjunto de resultados y la retorna como un array asociativo.
Cada llamada posterior a esta función retornará la siguiente fila en el conjunto de resultados,
o null
si no hay más filas.
Si dos o más columnas del resultado tienen el mismo nombre, la última columna tendrá prioridad y sobrescribirá todos los datos anteriores. Para acceder a múltiples columnas con el mismo nombre, puede utilizarse mysqli_fetch_row() para recuperar el array indexado numéricamente o pueden utilizarse alias en la lista de selección de la consulta SQL para dar nombres diferentes a las columnas.
Nota: Los nombres de los campos devueltos por esta función son sensibles a mayúsculas y minúsculas.
Nota: Esta función define campos NULOS al valor
null
de PHP.
result
Sólo estilo por procedimientos: Un conjunto de identificadores de resultados devuelto por mysqli_query(), mysqli_store_result() o mysqli_use_result().
Devuelve un array asociativo que representa la fila recuperada,
donde cada clave del array representa el nombre de una de las columnas del conjunto de resultados,
null
si no hay más filas en el conjunto de resultados, o false
en caso de error.
Ejemplo #1 Ejemplo mysqli_result::fetch_assoc()
Estilo orientado a objetos
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";
$result = $mysqli->query($query);
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
Estilo por procedimientos
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";
$result = mysqli_query($mysqli, $query);
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
El resultado de los ejemplos sería algo similar a:
Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA)
Ejemplo #2 Comparación del uso de mysqli_result iterator y mysqli_result::fetch_assoc()
mysqli_result puede ser iterado utilizando un foreach. El conjunto de resultados siempre será iterado desde la primera fila, independientemente de la posición actual.
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = 'SELECT Name, CountryCode FROM City ORDER BY ID DESC';
// Utiliza un iterador
$result = $mysqli->query($query);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
echo "\n==================\n";
// No utiliza iterador
$result = $mysqli->query($query);
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
El resultado del ejemplo sería algo similar a:
Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA) ================== Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA)