How to access stdClass variables stdClass Object([max(id)])=>64)

谁说胖子不能爱 提交于 2019-12-11 06:59:48

问题


I need the very last valid entry in a database table which would be the row with the greatest primary key. So using mysqli, my query is "SELECT MAX(id) FROM table LIMIT 1". This query returns the correct number(using print_r()) but I cannot figure out how to access it. Here is the main code. Note that the $this->link refers to class with a mysqli connection.

$q="select max(id) from stones limit 1";
    $qed=$this->link->query($q) or die(mysqli_error());
    if($qed){
        $row=$qed->fetch_object();
        print_r($row);
        echo $lastid=$row;//here is the problem
    }

The valid line print_r($row) echos out "stdClass Object ( [max(id)] => 68 )"


回答1:


You need to name the aggregate result.

SELECT MAX(id) AS maxid FROM stones

Then you can access the value like $row->maxid.




回答2:


Have you tried :

$row->max(id)? or $lastid=$row["max(id)"];

You may need to do a select max(id) as "MaxID" and $lastid=$row->MaxID;




回答3:


I need the very last valid entry in a database table which would be the row with the greatest primary key.

You say you want the last entry but you're only fetching the ID. Presumably you intend to use this to fetch the entire row with a second query.

Instead you could do the whole operation in one query:

SELECT *
FROM stones
ORDER BY id DESC
LIMIT 1


来源:https://stackoverflow.com/questions/3029120/how-to-access-stdclass-variables-stdclass-objectmaxid-64

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!