Hello friends,
My previous article MySQLi functions to fetch records from resultset demonstrates about mysqli_fetch_row() and mysqli_fetch_array() functions which are used to retrieve data from result sets. This article demonstrates two more functions mysqli_fetch_assoc() and mysqli_fetch_object() which are also used to fetch rows from the result set. The details of each function are given below :
 
1. mysqli_fetch_assoc()
mysqli_fetch_assoc() function retrieves a row from a result set and returns the row data as an associative array.
 
Syntax :
a. Procedural Style : mysqli_fetch_assoc(result)
result : Specifies mysqli result set.(Required)
 
b. Object Oriented Style : mysqli_result::fetch_assoc()
 
 
Description : mysqli_fetch_assoc() is used to retrieve the data of result row as an associative array where each key represents a column name of the result set. The function returns NULL if there are no more rows in resultset.
 
Result : This function returns the fetched row as an associative array where each key of array represents a column name in the result set. If there are no more rows to retrieve in the result set, then function returns NULL.
 
Note : If two or more columns have the same name, the value of the last column overwrites the values of earlier columns.
 
Example : Procedural Style
<?php
//--------SQL statement---------
$query = "SELECT * FROM users LIMIT 2";
if ($result = mysqli_query($con, $query))
{
    echo "<pre>";
    while($res = mysqli_fetch_assoc($result)){
  print_r($res);
    } 
    echo "</pre>";
    mysqli_free_result($result);
}
?>
 
Example : Object Oriented Style
<?php
//--------SQL statement---------
$query = "SELECT * FROM users LIMIT 2";
if ($result = $con->query($query)) 
{
   echo "<pre>";
   while($res = $result->fetch_assoc()){
      print_r($res);    
   }
   echo "</pre>";
   $result->free();
}
?>
 
Output :
Output :
Array
(
    [id] => 1
    [first_name] => Amit
    [last_name] => Kumar
    [email] => amit.kumar21@gmail.com
    [city] => Dehradun
)
Array
(
    [id] => 2
    [first_name] => Ravi
    [last_name] => Singh
    [email] => ravi22singh@yahoo.com
    [city] => Mumbai
)
 
 
2. mysqli_fetch_object()
mysqli_fetch_object() function fetches the current row of a result set as an object.
 
Syntax :
a. Procedural Style : mysqli_fetch_object(result, classname, params)
result : Specifies mysqli result set.(Required)
classname : Specifies the name of the class to instantiate. Default an object of stdClass is returned.(Optional)
params : Specifies an array of parameters to pass to the constructor of classname object.(Optional)
 
b. Object Oriented Style :  mysqli_result::fetch_object (class_name, params)
classname : Specifies the name of the class to instantiate.(Optional)
params : Specifies an array of parameters to pass to the constructor of classname object.(Optional)
 
 
Description : mysqli_fetch_object() function retrieves the current row from a result set and return it as an object. The columns of the result row are represent by object properties.
 
Result : This function returns an object which represents the current row of the result set. It returns NULL if there are no more rows in the result set.
 
Example : Procedural Style
<?php
//--------SQL statement---------
$query = "SELECT * FROM users LIMIT 2";
if ($result = mysqli_query($con, $query))
{
    echo "<pre>";
    while($object = mysqli_fetch_object($result)){
  echo $object->id.". ".$object->first_name." ".$object->last_name." from ".$object->city;
  echo "<br>";
    } 
    echo "</pre>";
    mysqli_free_result($result);
}
?>
 
Example : Object Oriented Style
<?php
//--------SQL statement---------
$query = "SELECT * FROM users LIMIT 2";
if ($result = $con->query($query)) 
{
   echo "<pre>";
   while($object = $result->fetch_object()){
      echo $object->id.". ".$object->first_name." ".$object->last_name." from ".$object->city;
      echo "<br>";    
   }
   echo "</pre>";
   $result->free();
}
?>
 
Output :
1. Amit Kumar from Dehradun
2. Ravi Singh from Mumbai
 
 
There is one other function mysqli_fetch_all() which fetch all rows from the result set, but it needs the mysqlnd driver installed before using it as mentioned in the given link : http://www.php.net/manual/en/mysqli-result.fetch-all.php#88031
 
mysqli_fetch_all()
mysqli_fetch_all() fetch all rows from the result set and returns rows as an array of associative, numeric or both types.
 
Syntax :
a. Procedural style : mysqli_fetch_all(result, resulttype)
result : Specifies mysqli result set.(Required)
resulttype :  An optional constant value which defines the type of the returned array.(Optional)
One of the following constant values can be used for the resulttype : 
MYSQLI_NUM : Returns a numeric array.
MYSQLI_ASSOC : Returns an associative array.
MYSQLI_BOTH : Returns an array with both numeric and associative keys.
 
b. Object Oriented Style : mysqli_result::fetch_all (resulttype)
resulttype : An optional constant value which defines the type of the returned array.(Optional)
 
 
Description : mysqli_fetch_all() looks similar to mysqli_fetch_array() function as it also returns fetched rows as an array of  numeric, associative and combination of both types. The main difference between these two functions is mysqli_fetch_all() fetches all rows at once while mysqli_fetch_array() fetches one row at a time.
 
Result : This function fetches all rows from the result set and returns a multidimensional array containing numeric or associative arrays of rows data fetched from the result set.
 
                       
                    
0 Comment(s)