fetch_array
В этой статье мы рассмотрим функцию mysqli_fetch_array() в PHP, которая используется для получения строки из набора результатов MySQLi в виде ассоциативного, числового или комбинированного массива. Мы предоставим обзор функции, её параметров и практические примеры.
Введение в функцию mysqli_fetch_array()
Функция mysqli_fetch_array() — это встроенная функция PHP, которая извлекает строку из набора результатов MySQLi. Она возвращает строку в виде ассоциативного массива, числового массива или обоих вариантов одновременно в зависимости от параметра result_type. Это особенно полезно, когда необходимо перебирать результаты запроса и обращаться к столбцам по имени или индексу.
Как использовать функцию mysqli_fetch_array()
Для использования mysqli_fetch_array() требуется действительный набор результатов MySQLi. Обычно она применяется внутри цикла while для перебора всех строк. Ниже приведён полный пример с базовой обработкой ошибок:
Базовое использование с циклом 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);
?>В этом примере мы устанавливаем соединение и выполняем запрос. Мы проверяем наличие ошибок соединения и запроса, чтобы предотвратить тихие сбои. Цикл while многократно вызывает mysqli_fetch_array(), возвращая false, когда больше нет строк. Константа MYSQLI_ASSOC гарантирует обращение к столбцам по имени.
Режимы выборки и расширенное использование
Второй параметр функции mysqli_fetch_array() управляет тем, как возвращается строка. Можно использовать три константы:
MYSQLI_ASSOC– Возвращает ассоциативный массив (имена столбцов в качестве ключей).MYSQLI_NUM– Возвращает числовой массив (индексы столбцов в качестве ключей).MYSQLI_BOTH– Возвращает и ассоциативный, и числовой массивы. Это режим по умолчанию, если второй параметр опущен.
Вот как получить строку в виде числового массива:
Выборка числового массива
<?php
// ... connection and query setup ...
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
echo $row[0] . " - " . $row[1] . "<br>";
}
?>При использовании MYSQLI_BOTH каждый столбец появляется в массиве дважды: один раз по имени и один раз по индексу. Это может быть полезно для устаревшего кода, но увеличивает потребление памяти, поэтому для современных приложений обычно предпочтительнее MYSQLI_ASSOC или MYSQLI_NUM.
Заключение
Функция mysqli_fetch_array() обеспечивает гибкое извлечение строк из наборов результатов MySQLi. Понимая режимы выборки и внедряя базовую обработку ошибок, вы сможете писать более надёжные и эффективные запросы к базе данных в PHP.
Практика
Что делает функция mysqli_fetch_array() в PHP?