Register Login

Object of Class mysqli_result Could Not be Converted to String Error

24 Jul 2020 2:17 pm || 0

It is common for programmers to encounter an error “Object of class mysqli_result could not be converted to string”. This error occurs when we want to print the value to an object as a string.

Let us look into this error in further detail.

What is Object of class mysqli_result Could Not be Converted to String Error?

The mysqli_query() function returns object resource to the result variable. It does not return a string. So, this result cannot be converted into a string and hence the error occurs.

To print the value of the object resource, we need to use mysql_fetch_array() or mysqli_fetch_assoc() functions to convert the value of the object to a string.

Error Code

<?php
$resultAll = mysqli_query($dbcon, "SELECT * FROM users");
if(!$resultAll){
	die(mysqli_error($dbcon));
}
echo $resultAll;
?>

Output:

Fatal error: Uncaught Error: Object of class mysqli_result could not be converted to string

Correct Example

<?php
$resultAll = mysqli_query($dbcon, "SELECT * FROM users");
if(!$resultAll){
	die(mysqli_error($dbcon));
}

if (mysqli_num_rows($resultAll) > 0) {
	while($rowData = mysqli_fetch_array($resultAll)){
  		echo $rowData["user_name"].'<br>';
	}
}
?>

In the above example, you can see that we are using mysqli_fetch_array() function to take the value from $resultAll object to $rowCatData array. Then the value of array element is printed using $rowCatData["user_name"];

Example 2 - Using mysqli_fetch_assoc()

The mysqli_fetch_assoc() method obtains a resultant row in the form of an associative array. The parameter is the result set identifier that is returned by mysqli_query() method.

<?php

$resultAll = mysqli_query($dbcon, "SELECT * FROM post_categorys");

# Die if connection net established
if(!$resultAll){
	die(mysqli_error($dbcon));
}

# Check if result greater then 0
if (mysqli_num_rows($resultAll) > 0){
	while($rowData = mysqli_fetch_assoc($resultAll)){
		echo $rowData["category_name"].'<br>';
	}
}

?>

In the above example, you can see that we are using mysqli_fetch_assoc() function to take the associative array from $resultAll object to assign it $rowCatData array. The value of array element $rowData["user_name"] is then printed.

Using fetch_array as an Object

<?php
while ($rowData= $resultAll->fetch_array()) {
    echo $rowData['classtype'];
}
?>

Here, the fetch_array() method is used for fetching the resultant row of the array as an object. The result assigned in $rowData['classtype'] is printed using the echo statement.

Using fetch_assoc as an Object 

<?php
while ($rowData= $resultAll->fetch_assoc()) {
    echo $rowData['classtype'];
}
?>

Here, the fetch_assoc() method is used for fetching the resultant row of the array as an object. The result assigned in $rowData['classtype'] is printed using the echo statement.