Simplified version of the problem:
So I have this query which is inside a function.
$query = "SELECT * FROM users";
$result = mysql_query($query);
How I want to use mysql_fetch_object() to get an object from a row.
Because in the end I wanted to get an array of objects I do this:
while ($a[] = mysql_fetch_object($result)) { // empty here }
In the end the function just returns $a. And it works almost fine.
My problem is that mysql_fetch_object will return at the end a NULL "row" (which is normal because the result ended but I still assigned it to the array).
Any ideas on how to do this in a decent way? Thanks in advance.
4 Answers 4
Or you could move the assignment from the while condition to the while body like:
<?php
while ($entry = mysql_fetch_object($result)) {
$a[] = $entry;
}
Comments
mysql_fetch_object
actually returns FALSE
if there are no more rows. I would do this:
$a = array();
while (($row = mysql_fetch_object($result)) !== FALSE) {
$a[] = $row;
}
1 Comment
1 Comment
array_pop
ing though.This question seems like duplicate of how to fetch all the row of the result in php mysql?
//Database Connection
$sqlConn = new mysqli($hostname, $username, $password, $database);
//Build SQL String
$sqlString = "SELECT * FROM my_table";
//Execute the query and put data into a result
$result = $this->sqlConn->query($sqlString);
//Copy result into a associative array
$resultArray = $result->fetch_all(MYSQLI_ASSOC);
//Copy result into a numeric array
$resultArray = $result->fetch_all(MYSQLI_NUM);
//Copy result into both a associative and numeric array
$resultArray = $result->fetch_all(MYSQLI_BOTH);