The 5th Annual China PHP Conference



(PHP 5, PHP 7)

mysqli_result::fetch_row -- mysqli_fetch_rowGet a result row as an enumerated array


Object oriented style

mixed mysqli_result::fetch_row ( void )

Procedural style

mixed mysqli_fetch_row ( mysqli_result $result )

Fetches one row of data from the result set and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to this function will return the next row within the result set, or NULL if there are no more rows.



Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

Return Values

mysqli_fetch_row() returns an array of strings that corresponds to the fetched row or NULL if there are no more rows in result set.

Note: This function sets NULL fields to the PHP NULL value.


Example #1 Object oriented style

= new mysqli("localhost""my_user""my_password""world");

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n"mysqli_connect_error());

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if (
$result $mysqli->query($query)) {

/* fetch object array */
while ($row $result->fetch_row()) {
printf ("%s (%s)\n"$row[0], $row[1]);

/* free result set */

/* close connection */

Example #2 Procedural style


/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n"mysqli_connect_error());

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if (
$result mysqli_query($link$query)) {

/* fetch associative array */
while ($row mysqli_fetch_row($result)) {
printf ("%s (%s)\n"$row[0], $row[1]);

/* free result set */

/* close connection */

The above examples will output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

See Also

add a note add a note

User Contributed Notes 5 notes

10 years ago
It's worth noting that the MySQLi functions (and, I presume, the MySQL functions) fetch a string regardless of the MySQL data type. E.g. if you fetch a row with an integer column, the corresponding value for that column and row will still be stored as a string in the array returned by mysql_fetch_row.
sainthyoga2003 at gmail dot com
3 years ago
Note that mysqli_fetch() is deprecated but still is in PHP function list. mysqli_fetch_row() is nowadays mysql procedural style used, but is not listed in PHP functions.
maillist at
13 years ago

4. Be careful when porting from ext/mysql to ext/mysqli. The following
   functions return NULL when no more data is available in the result set
   (ext/mysql's functions return FALSE).

    - mysqli_fetch_row()
    - mysqli_fetch_array()
    - mysqli_fetch_assoc()
evangun2001 at yahoo dot fr
9 years ago
Remember that fetch() and fetch_row() are two different things, and differ in the way to use them.

- fetch() is used on a statement (like an executed prepared statement) and needs to be used in association with bind_result().

- fetch_row() is used on a result (like the result of query()).

As a consequence, if you want to use to use fetch_row() with an executed prepared statement, first you'll have to get the result out of this statement with mysqli_store_result() or mysqli_use_result().
zedx at live dot com
16 hours ago
<!DOCTYPE html>
<html lang="en">
    <meta charset="utf-8">



= "";
$username = "";
$password = "";
$dbname = "";
$spend = x;
$dbConn = mysqli_connect("$servername", "$username", "$password", "$dbname");
  if (!
'Could not connect: ' . mysqli_connect_error($dbConn));


$sql = "select * from customer";
$rs = mysqli_query($dbConn, $sql)
        or die (
'Problem with query' . mysqli_error($dbConn));

    <p>Services less than $<?php echo $spend?>:</p>
    <table border="1">
      <tr><td>Name</td><td>Description</td><td>Price</td><td>Serv Type</td></tr>
      <?php while ($row = mysqli_fetch_array($rs)) { ?>
        <td><?php echo $row["customerID"]?></td>
        <td><?php echo $row["firstName"]?></td>
        <td><?php echo $row["state"]?></td>
        <td><?php echo $row["postcode"]?></td>
    <?php } ?>
    <?php mysqli_close($dbConn); ?>
To Top