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 Запрос с применением псевдонимов для дублирующихся имен колонок
SELECT table1.field AS foo, table2.field AS bar FROM table1, table2
Пример #2 mysql_fetch_array() с MYSQL_NUM
mysql_connect ( «localhost» , «mysql_user» , «mysql_password» ) or
die( «Ошибка соединения: » . mysql_error ());
mysql_select_db ( «mydb» );
?php
$result = mysql_query ( «SELECT id, name FROM mytable» );
while ( $row = mysql_fetch_array ( $result , MYSQL_NUM )) printf ( «ID: %s Имя: %s» , $row [ 0 ], $row [ 1 ]);
>
Пример #3 mysql_fetch_array() с MYSQL_ASSOC
mysql_connect ( «localhost» , «mysql_user» , «mysql_password» ) or
die( «Ошибка соединения: » . mysql_error ());
mysql_select_db ( «mydb» );
?php
$result = mysql_query ( «SELECT id, name FROM mytable» );
while ( $row = mysql_fetch_array ( $result , MYSQL_ASSOC )) printf ( «ID: %s Имя: %s» , $row [ «id» ], $row [ «name» ]);
>
Пример #4 mysql_fetch_array() с MYSQL_BOTH
mysql_connect ( «localhost» , «mysql_user» , «mysql_password» ) or
die( «Ошибка соединения: » . mysql_error ());
mysql_select_db ( «mydb» );
?php
$result = mysql_query ( «SELECT id, name FROM mytable» );
while ( $row = mysql_fetch_array ( $result , MYSQL_BOTH )) printf ( «ID: %s Имя: %s» , $row [ 0 ], $row [ «name» ]);
>
Примечания
Замечание: Производительность
Важно заметить, что mysql_fetch_array() работает незначительно медленнее, чем mysql_fetch_row() , в то же время предоставляя намного более удобный доступ к данным.
Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.
Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.
Смотрите также
- mysql_fetch_row() — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
- mysql_fetch_assoc() — Возвращает ряд результата запроса в качестве ассоциативного массива
- mysql_data_seek() — Перемещает внутренний указатель в результате запроса
- mysql_query() — Посылает запрос MySQL
mysqli_fetch_array
Fetches one row of data from the result set and returns it as an array. Each subsequent call to this function will return the next row within the result set, or null if there are no more rows.
In addition to storing the data in the numeric indices of the result array, this function can also store the data in associative indices by using the field names of the result set as keys.
If two or more columns of the result have the same name, the last column will take precedence and overwrite any previous data. To access multiple columns with the same name, the numerically indexed version of the row must be used.
Note: Field names returned by this function are case-sensitive.
Note: This function sets NULL fields to the PHP null value.
Parameters
This optional parameter is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC , MYSQLI_NUM , or MYSQLI_BOTH .
By using the MYSQLI_ASSOC constant this function will behave identically to the mysqli_fetch_assoc() , while MYSQLI_NUM will behave identically to the mysqli_fetch_row() function. The final option MYSQLI_BOTH will create a single array with the attributes of both.
Return Values
Returns an array representing the fetched row, null if there are no more rows in the result set, or false on failure.
Examples
Example #1 mysqli_result::fetch_array() example
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 LIMIT 3» ;
$result = $mysqli -> query ( $query );
/* numeric array */
$row = $result -> fetch_array ( MYSQLI_NUM );
printf ( «%s (%s)\n» , $row [ 0 ], $row [ 1 ]);
/* associative array */
$row = $result -> fetch_array ( MYSQLI_ASSOC );
printf ( «%s (%s)\n» , $row [ «Name» ], $row [ «CountryCode» ]);
/* associative and numeric array */
$row = $result -> fetch_array ( MYSQLI_BOTH );
printf ( «%s (%s)\n» , $row [ 0 ], $row [ «CountryCode» ]);
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 LIMIT 3» ;
$result = mysqli_query ( $mysqli , $query );
/* numeric array */
$row = mysqli_fetch_array ( $result , MYSQLI_NUM );
printf ( «%s (%s)\n» , $row [ 0 ], $row [ 1 ]);
/* associative array */
$row = mysqli_fetch_array ( $result , MYSQLI_ASSOC );
printf ( «%s (%s)\n» , $row [ «Name» ], $row [ «CountryCode» ]);
/* associative and numeric array */
$row = mysqli_fetch_array ( $result , MYSQLI_BOTH );
printf ( «%s (%s)\n» , $row [ 0 ], $row [ «CountryCode» ]);
The above examples will output something similar to:
Kabul (AFG) Qandahar (AFG) Herat (AFG)
See Also
- mysqli_fetch_assoc() — Fetch the next row of a result set as an associative array
- mysqli_fetch_column() — Fetch a single column from the next row of a result set
- mysqli_fetch_row() — Fetch the next row of a result set as an enumerated array
- mysqli_fetch_object() — Fetch the next row of a result set as an object
- mysqli_query() — Performs a query on the database
- mysqli_data_seek() — Adjusts the result pointer to an arbitrary row in the result
User Contributed Notes
mysqli_fetch_object
Fetches one row of data from the result set and returns it as an object, where each property represents the name of the result set’s column. Each subsequent call to this function will return the next row within the result set, or null if there are no more rows.
If two or more columns of the result have the same name, the last column will take precedence and overwrite any previous data. To access multiple columns with the same name, mysqli_fetch_row() may be used to fetch the numerically indexed array, or aliases may be used in the SQL query select list to give columns different names.
Note: This function sets the properties of the object before calling the object constructor.
Note: Field names returned by this function are case-sensitive.
Note: This function sets NULL fields to the PHP null value.
Parameters
The name of the class to instantiate, set the properties of and return. If not specified, a stdClass object is returned.
An optional array of parameters to pass to the constructor for class objects.
Return Values
Returns an object representing the fetched row, where each property represents the name of the result set’s column, null if there are no more rows in the result set, or false on failure.
Changelog
Version | Description |
---|---|
8.0.0 | constructor_args now accepts [] for constructors with 0 parameters; previously an exception was thrown. |
Examples
Example #1 mysqli_result::fetch_object() example
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 object array */
while ( $obj = $result -> fetch_object ()) printf ( «%s (%s)\n» , $obj -> Name , $obj -> CountryCode );
>
mysqli_report ( MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT );
$link = mysqli_connect ( «localhost» , «my_user» , «my_password» , «world» );
$query = «SELECT Name, CountryCode FROM City ORDER BY ID DESC» ;
$result = mysqli_query ( $link , $query );
/* fetch associative array */
while ( $obj = mysqli_fetch_object ( $result )) printf ( «%s (%s)\n» , $obj -> Name , $obj -> CountryCode );
>
The above examples will output something similar to:
Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA)
See Also
- mysqli_fetch_array() — Fetch the next row of a result set as an associative, a numeric array, or both
- mysqli_fetch_assoc() — Fetch the next row of a result set as an associative array
- mysqli_fetch_column() — Fetch a single column from the next row of a result set
- mysqli_fetch_row() — Fetch the next row of a result set as an enumerated array
- mysqli_query() — Performs a query on the database
- mysqli_data_seek() — Adjusts the result pointer to an arbitrary row in the result