2010-06-12 67 views
1

我需要数据库表中最后一个有效的条目,它将是主键最大的那一行。所以使用mysqli,我的查询是“SELECT MAX(id)FROM table LIMIT 1”。这个查询返回正确的数字(使用print_r()),但我无法弄清楚如何访问它。这是主要的代码。请注意,$ this->链接指的是带有mysqli连接的类。如何访问stdClass变量stdClass对象([max(id)])=> 64)

$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 
    } 

的有效行的print_r($行)回声出 “stdClass的对象([MAX(ID)] => 68)”

回答

5

您需要命名聚合结果。

SELECT MAX(id) AS maxid FROM stones 

然后您可以访问像$row->maxid这样的值。

+0

感谢您的支持。我发现一个不太清洁的解决方案,那就是使用fetch_array()而不是fetch_object。但是,我会尝试你的。 – Theopile 2010-06-12 18:36:53

+0

谢谢你救了我的命人 – 2016-06-05 17:08:50

1

我需要在一个数据库表中的最后一个有效的条目这将是主键最大的那一行。

你说你想要最后一个条目,但你只是获取ID。大概你打算用第二个查询来获取整行。

相反,你可以做整个操作在一个查询:

SELECT * 
FROM stones 
ORDER BY id DESC 
LIMIT 1 
+0

感谢您的回复,但我只想要编号 – Theopile 2010-06-12 18:35:12

1

您是否尝试过:

$按行> MAX(ID)? 或 $ lastid = $ row [“max(id)”];

您可能需要选择max(id)作为“MaxID”并且 $ lastid = $ row-> MaxID;

+0

$ row-> max(id)给出错误 – Theopile 2010-06-12 18:34:17