Elettracompany.com

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Fetch array php

mysql_fetch_array

mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

Описание

Возвращает массив, соответствующий обработанному ряду результата запроса и сдвигает внутренний указатель данных вперед.

Список параметров

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query() .

Тип возвращаемого массива. Является константой и может принимать следующие значения: MYSQL_ASSOC , MYSQL_NUM и MYSQL_BOTH .

Возвращаемые значения

Возвращает массив строк, соответствующих обработанному ряду результата запроса, или FALSE , если рядов больше нет. Тип возвращаемого массива зависит от значения параметра result_type . При использовании MYSQL_BOTH (по умолчанию), вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные индексы (аналогично функции mysql_fetch_assoc() ), а MYSQL_NUM — только численные (аналогично функции mysql_fetch_row() ).

Если несколько колонок в результате будут иметь одинаковые названия, то будет возвращена последняя колонка. Чтобы получить доступ к другим колонкам с тем же именем, используйте численные индексы массива или псевдонимы в запросе. В случае псевдонимов используйте именно их — вы не сможете использовать настоящие имена колонок.

Примеры

Пример #1 Запрос с применением псевдонимов для дублирующихся имен колонок

Пример #2 mysql_fetch_array() с MYSQL_NUM

Пример #3 mysql_fetch_array() с MYSQL_ASSOC

Пример #4 mysql_fetch_array() с MYSQL_BOTH

Примечания

Замечание: Производительность

Важно заметить, что mysql_fetch_array() работает незначительно медленнее, чем mysql_fetch_row() , в то же время предоставляя намного более удобный доступ к данным.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_row() — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_assoc() — Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_data_seek() — Перемещает внутренний указатель в результате запроса
  • mysql_query() — Посылает запрос MySQL

mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

Описание

Возвращает массив, соответствующий обработанному ряду результата запроса и сдвигает внутренний указатель данных вперед.

Список параметров

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query() .

Тип возвращаемого массива. Является константой и может принимать следующие значения: MYSQL_ASSOC , MYSQL_NUM и MYSQL_BOTH .

Возвращаемые значения

Возвращает массив строк, соответствующих обработанному ряду результата запроса, или FALSE , если рядов больше нет. Тип возвращаемого массива зависит от значения параметра result_type . При использовании MYSQL_BOTH (по умолчанию), вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные индексы (аналогично функции mysql_fetch_assoc() ), а MYSQL_NUM — только численные (аналогично функции mysql_fetch_row() ).

Если несколько колонок в результате будут иметь одинаковые названия, то будет возвращена последняя колонка. Чтобы получить доступ к другим колонкам с тем же именем, используйте численные индексы массива или псевдонимы в запросе. В случае псевдонимов используйте именно их — вы не сможете использовать настоящие имена колонок.

Примеры

Пример #1 Запрос с применением псевдонимов для дублирующихся имен колонок

Пример #2 mysql_fetch_array() с MYSQL_NUM

Пример #3 mysql_fetch_array() с MYSQL_ASSOC

Пример #4 mysql_fetch_array() с MYSQL_BOTH

Примечания

Замечание: Производительность

Важно заметить, что mysql_fetch_array() работает незначительно медленнее, чем mysql_fetch_row() , в то же время предоставляя намного более удобный доступ к данным.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_row() — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_assoc() — Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_data_seek() — Перемещает внутренний указатель в результате запроса
  • mysql_query() — Посылает запрос MySQL

Разница между mysql_fetch_array и mysql_fetch_row?

Это простой вопрос для пользователей PHP. Причина, по которой я не мог получить точную разницу между mysql_fetch_array() и mysql_fetch_row() в PHP, заключается в том, что я много работал с Java.

Читать еще:  Php fopen кодировка

Прежде чем опубликовать этот вопрос здесь, я получил несколько ответов от Google, но обнаружил, что они несколько запутывают. Некоторые из ссылок, которые я нашел в Интернете, следующие.

Я не мог получить точную идею из приведенных выше ответов. Итак, какова же разница между ними?

Документация достаточно понятна, посмотрели на нее?

Возвращает массив строк, соответствующий выбранной строке, или FALSE, если больше строк нет. Тип возвращаемого массива зависит от того, как определяется result_type. Используя MYSQL_BOTH (по умолчанию), вы получите массив с ассоциативными и числовыми индексами. Используя MYSQL_ASSOC, вы получаете только ассоциативные индексы (как работает mysql_fetch_assoc ()), используя MYSQL_NUM, вы получаете только номера индексов (как работает mysql_fetch_row ()) .

Возвращает числовой массив строк, соответствующий выбранной строке, или FALSE, если больше строк нет.

mysql_fetch_row () извлекает одну строку данных из результата, связанного с указанным идентификатором результата. Строка возвращается как массив. Каждый столбец результатов хранится в смещении массива, начиная со смещения 0.

mysql_fetch_array( $result, MYSQL_ASSOC ) = mysql_fetch_assoc( $result ) mysql_fetch_array( $result, MYSQL_NUM ) = mysql_fetch_row( $result )

mysql_fetch_array ( $result ) = mysql_fetch_assoc( $result ) + mysql_fetch_row( $result )

Многие новички программирования php запутываются в функциях mysql_fetch_array (), mysql_fetch_row (), mysql_fetch_assoc () и mysql_fetch_object (), но все эти функции выполняют аналогичный процесс.

Создадим таблицу «tb» для четкого примера с тремя полями «id», «username» и «password»,

Таблица: tb

Вставьте новую строку в таблицу со значениями 1 для id, tobby для имени пользователя и tobby78 $ 2 для пароля

db.php

mysql_fetch_row ()

Получить строку результата в виде числового массива

1 tobby tobby78 $ 2

mysql_fetch_object ()

Получить строку результата как объект

1 tobby tobby78 $ 2

mysql_fetch_assoc ()

Извлечь строку результатов как ассоциативный массив

1 tobby tobby78 $ 2

mysql_fetch_array ()

Выбираем строку результата как ассоциативный массив, числовой массив, а также выбираем как ассоциативный, так и числовой массив.

1 tobby tobby78 $ 2

Функция mysql_fetch_object () собирает первую единственную совпадающую запись в соответствующем формате и может быть восстановлена ​​соответствующим образом.

con.php

index.php

Как будет выглядеть каждое значение при сбросе массива в браузере

mysql_fetch_array

Вывод:

mysql_fetch_row

Вывод:

mysql_fetch_assoc

Вывод:

mysql_fetch_object

Вывод:

Rest @Gaurang предоставил, как использовать выход для вашего кода и других действий.

mysql_fetch_row возвращает перечисляемый массив, поэтому индекс – это числа. mysql_fetch_array возвращает ассоциативный массив (и по умолчанию – номера слияния для индекса), поэтому mysql_fetch_array возвращает по умолчанию все данные, дублированные в одном массиве, один набор данных с использованием числа в качестве индекса и другого набора, все еще в одном массиве, с ассоциативным индексом (текстовые индексы).

mysql_fetch_array Пример (поведение по умолчанию):

Есть 3 функции. mysql_fetch_assoc mysql_fetch_row mysql_fetch_array (комбинация строк и ссылок)

Я бы порекомендовал _assoc или _row оптимизировать ваш код и сохранить его. Если вы захватываете один столбец, используйте строку $ row = mysql_fetch_row $ [0]

Как говорится в руководстве: mysql_fetch_array() может возвращать ассоциативный массив в зависимости от значений по умолчанию и его второго параметра ( MYSQL_ASSOC , MYSQL_NUM или MYSQL_BOTH ).

Хотя mysql_fetch_row() всегда возвращает индексированный массив.

mysql_fetch_array, как говорится в руководстве, может возвращать индекс int (position), ассоциативный массив или оба в соответствии с выбранным result_type.

с другой стороны, mysql_fetch_row всегда возвращает результирующий набор на основе целочисленного индекса.

Я лично рекомендую вам использовать mysql_fetch_array, передавая MYSQL_ASSOC в качестве второго параметра, поскольку всегда легче узнать, какое поле вы хотите извлечь

Fetch row возвращает числовой массив для текущей записи

Массив Fetch будет по умолчанию возвращать полный массив id => key => value, но он также предлагает возможность выбора либо числового, либо ассоциативного возврата

Ответьте два из первой ссылки, которую вы указали, правильно. Комментарий сказал:

«Вместо этого оба возвращают все строки из таблицы. Разница между ними – результат возврата fetch_array в массиве-помощнике, а также числовой массив, и вы также можете указать, какой конкретный тип массива вы хотите, предоставив второй параметр функции, тогда как fetch_row возвращает результат в только числовой массив «.

… так что с помощью fetch_row вы не можете сделать что-то вроде

mysqli_result::fetch_array

mysqli_result::fetch_array — mysqli_fetch_array — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба

Читать еще:  Php sql connect

Описание

Возвращает массив, соответствующий выбранной строке или NULL , если в результирующей таблице, представленной параметром result , больше нет доступных строк.

mysqli_fetch_array() является расширенной версией функции mysqli_fetch_row() . Вдобавок к сохранению данных в обычном массиве, mysqli_fetch_array() может сохранять строки в ассоциативном массиве, где имена полей результирующей таблицы будут ключами элементов.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Если два столбца или более имеют одинаковые имена, данные последнего столбца будут перезаписывать данные предыдущих. В таких ситуациях для доступа к данным всех столбцов с одинаковыми именами лучше пользоваться обычными массивами, индексированными номерами столбцов.

Список параметров

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query() , mysqli_store_result() или mysqli_use_result() .

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: MYSQLI_ASSOC , MYSQLI_NUM или MYSQLI_BOTH .

При использовании константы MYSQLI_ASSOC функция будет вести себя идентично mysqli_fetch_assoc() , а при MYSQLI_NUM идентично функции mysqli_fetch_row() . При задании MYSQLI_BOTH функция создаст один массив, включающий атрибуты обоих вариантов.

Возвращаемые значения

Возвращает массив строк, соответствующих выбранной строке набора или NULL , если в результирующей таблице больше нет данных.

Примеры

Пример #1 Объектно-ориентированный стиль

connect_errno ) <
printf ( «Не удалось подключиться: %sn» , $mysqli -> connect_error );
exit();
>

$query = «SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3» ;
$result = $mysqli -> query ( $query );

/* обычный массив */
$row = $result -> fetch_array ( MYSQLI_NUM );
printf ( «%s (%s)n» , $row [ 0 ], $row [ 1 ]);

/* ассоциативный массив */
$row = $result -> fetch_array ( MYSQLI_ASSOC );
printf ( «%s (%s)n» , $row [ «Name» ], $row [ «CountryCode» ]);

/* ассоциативный и обычный массивы */
$row = $result -> fetch_array ( MYSQLI_BOTH );
printf ( «%s (%s)n» , $row [ 0 ], $row [ «CountryCode» ]);

/* очищаем результаты выборки */
$result -> free ();

/* закрываем подключение */
$mysqli -> close ();
?>

Пример #2 Процедурный стиль

Результат выполнения данных примеров:

Смотрите также

  • mysqli_fetch_assoc() — Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_row() — Получение строки результирующей таблицы в виде массива
  • mysqli_fetch_object() — Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() — Выполняет запрос к базе данных
  • mysqli_data_seek() — Перемещает указатель результата на выбранную строку

User Contributed Notes 4 notes

Putting multiple rows into an array:

while( $row = $result -> fetch_array ())
<
$rows [] = $row ;
>

foreach( $rows as $row )
<
echo $row [ ‘CountryCode’ ];
>

/* free result set */
$result -> close ();

/* close connection */
$mysqli -> close ();
?>

Note that the array returned contains only strings.

E.g. when a MySQL field is an INT you may expect the field to be returned as an integer, however all fields are simply returned as strings.

What this means: use double-equals not triple equals when comparing numbers.

Please note that under PHP 5.x there appears to be a globally defined variable MYSQL_ASSOC, MYSQL_NUM, or MYSQL_BOTH which is the equivalent of MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. Yet under PHP 7.x this is NOT the case and will cause a failure in trying to retrieve the result set!

This can cause severe headaches when trying to find out why you are getting the error:
— mysqli_result::fetch_array() expects parameter 1 to be integer, string given in ‘Filename’ on line ‘XX’

Here is a function to return an associative array with multiple columns as keys to the array.

This is a rough approximation of the perl DBI->fetchall_hashref function — something I find myself using quite a bit.

Given a simple mySQL table:

mysql> select * from city;
+—————-+—————-+——————+————+
| country | region | city | hemisphere |
+—————-+—————-+——————+————+
| South Africa | KwaZulu-Natal | Durban | South |
| South Africa | Gauteng | Johannesburg | South |
| South Africa | Gauteng | Tshwane | South |
| South Africa | KwaZulu-Natal | Pietermaritzburg | South |
| United Kingdom | Greater London | City of London | North |
| United Kingdom | Greater London | Wimbledon | North |
| United Kingdom | Lancashire | Liverpool | North |
| United Kingdom | Lancashire | Manchester | North |
+—————-+—————-+——————+————+

*Note* — this is a simple function that makes no attempt to keep multiple values per key, so you need to specify all the unique keys you require.

$val ) <
$pointer [ $key ] = $val ;
>

/* free result set */
$result -> close ();

Читать еще:  Matlab несколько графиков в одном окне

Разница между mysql_fetch_array и mysql_fetch_row?

Это простой вопрос для пользователей PHP. Причина, по которой я не мог получить точную разницу между mysql_fetch_array() и mysql_fetch_row() в PHP, заключается в том, что я много работал с Java.

Прежде чем опубликовать этот вопрос здесь, я получил несколько ответов от Google, но обнаружил, что они несколько запутывают. Некоторые из ссылок, которые я нашел в Интернете, следующие.

Я не мог получить точную идею из приведенных выше ответов. Итак, какова же разница между ними?

Документация достаточно понятна, посмотрели на нее?

Возвращает массив строк, соответствующий выбранной строке, или FALSE, если больше строк нет. Тип возвращаемого массива зависит от того, как определяется result_type. Используя MYSQL_BOTH (по умолчанию), вы получите массив с ассоциативными и числовыми индексами. Используя MYSQL_ASSOC, вы получаете только ассоциативные индексы (как работает mysql_fetch_assoc ()), используя MYSQL_NUM, вы получаете только номера индексов (как работает mysql_fetch_row ()) .

Возвращает числовой массив строк, соответствующий выбранной строке, или FALSE, если больше строк нет.

mysql_fetch_row () извлекает одну строку данных из результата, связанного с указанным идентификатором результата. Строка возвращается как массив. Каждый столбец результатов хранится в смещении массива, начиная со смещения 0.

mysql_fetch_array( $result, MYSQL_ASSOC ) = mysql_fetch_assoc( $result ) mysql_fetch_array( $result, MYSQL_NUM ) = mysql_fetch_row( $result )

mysql_fetch_array ( $result ) = mysql_fetch_assoc( $result ) + mysql_fetch_row( $result )

Многие новички программирования php запутываются в функциях mysql_fetch_array (), mysql_fetch_row (), mysql_fetch_assoc () и mysql_fetch_object (), но все эти функции выполняют аналогичный процесс.

Создадим таблицу «tb» для четкого примера с тремя полями «id», «username» и «password»,

Таблица: tb

Вставьте новую строку в таблицу со значениями 1 для id, tobby для имени пользователя и tobby78 $ 2 для пароля

db.php

mysql_fetch_row ()

Получить строку результата в виде числового массива

1 tobby tobby78 $ 2

mysql_fetch_object ()

Получить строку результата как объект

1 tobby tobby78 $ 2

mysql_fetch_assoc ()

Извлечь строку результатов как ассоциативный массив

1 tobby tobby78 $ 2

mysql_fetch_array ()

Выбираем строку результата как ассоциативный массив, числовой массив, а также выбираем как ассоциативный, так и числовой массив.

1 tobby tobby78 $ 2

Функция mysql_fetch_object () собирает первую единственную совпадающую запись в соответствующем формате и может быть восстановлена ​​соответствующим образом.

con.php

index.php

Как будет выглядеть каждое значение при сбросе массива в браузере

mysql_fetch_array

Вывод:

mysql_fetch_row

Вывод:

mysql_fetch_assoc

Вывод:

mysql_fetch_object

Вывод:

Rest @Gaurang предоставил, как использовать выход для вашего кода и других действий.

mysql_fetch_row возвращает перечисляемый массив, поэтому индекс – это числа. mysql_fetch_array возвращает ассоциативный массив (и по умолчанию – номера слияния для индекса), поэтому mysql_fetch_array возвращает по умолчанию все данные, дублированные в одном массиве, один набор данных с использованием числа в качестве индекса и другого набора, все еще в одном массиве, с ассоциативным индексом (текстовые индексы).

mysql_fetch_array Пример (поведение по умолчанию):

Есть 3 функции. mysql_fetch_assoc mysql_fetch_row mysql_fetch_array (комбинация строк и ссылок)

Я бы порекомендовал _assoc или _row оптимизировать ваш код и сохранить его. Если вы захватываете один столбец, используйте строку $ row = mysql_fetch_row $ [0]

Как говорится в руководстве: mysql_fetch_array() может возвращать ассоциативный массив в зависимости от значений по умолчанию и его второго параметра ( MYSQL_ASSOC , MYSQL_NUM или MYSQL_BOTH ).

Хотя mysql_fetch_row() всегда возвращает индексированный массив.

mysql_fetch_array, как говорится в руководстве, может возвращать индекс int (position), ассоциативный массив или оба в соответствии с выбранным result_type.

с другой стороны, mysql_fetch_row всегда возвращает результирующий набор на основе целочисленного индекса.

Я лично рекомендую вам использовать mysql_fetch_array, передавая MYSQL_ASSOC в качестве второго параметра, поскольку всегда легче узнать, какое поле вы хотите извлечь

Fetch row возвращает числовой массив для текущей записи

Массив Fetch будет по умолчанию возвращать полный массив id => key => value, но он также предлагает возможность выбора либо числового, либо ассоциативного возврата

Ответьте два из первой ссылки, которую вы указали, правильно. Комментарий сказал:

«Вместо этого оба возвращают все строки из таблицы. Разница между ними – результат возврата fetch_array в массиве-помощнике, а также числовой массив, и вы также можете указать, какой конкретный тип массива вы хотите, предоставив второй параметр функции, тогда как fetch_row возвращает результат в только числовой массив «.

… так что с помощью fetch_row вы не можете сделать что-то вроде

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector
×
×