MySQL and PHP
Copyright 1997-2021 the PHP Documentation Group.
mysqli_result::fetch_array
mysqli_fetch_array
Fetch a result row as an associative, a numeric array, or both
Object oriented style
public mixed mysqli_result::fetch_array(int resulttype= =MYSQLI_BOTH);
Procedural style
mixed mysqli_fetch_array(mysqli_result result,
int resulttype= =MYSQLI_BOTH);
Returns an array that corresponds to the fetched row or
null
if there are no more rows for the
resultset represented by the result
parameter.
mysqli_fetch_array
is an extended version of the
mysqli_fetch_row
function. In addition to storing the data in the numeric indices
of the result array, the
mysqli_fetch_array
function can also store the data in associative indices, using
the field names of the result set as keys.
Field names returned by this function are case-sensitive.
This function sets NULL fields to
the PHP null
value.
If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.
result
Procedural style only: A result set identifier returned
by
mysqli_query
,
mysqli_store_result
or
mysqli_use_result
.
resulttype
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.
Returns an array of strings that corresponds to the fetched row
or null
if there are no more rows in
resultset.
Example 3.109 Object oriented style
<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } $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"]); /* free result set */ $result->free(); /* close connection */ $mysqli->close(); ?>
Example 3.110 Procedural style
<?php $link = mysqli_connect("localhost", "my_user", "my_password", "world"); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3"; $result = mysqli_query($link, $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"]); /* free result set */ mysqli_free_result($result); /* close connection */ mysqli_close($link); ?>
The above examples will output:
Kabul (AFG) Qandahar (AFG) Herat (AFG)
mysqli_fetch_assoc
|
mysqli_fetch_row
|
mysqli_fetch_object
|
mysqli_query
|
mysqli_data_seek
|