Как получить доступ к переменным stdClass Объект stdClass ([max (id)]) = ›64)

Мне нужна самая последняя действительная запись в таблице базы данных, которая будет строкой с наибольшим первичным ключом. Итак, используя mysqli, мой запрос: «ВЫБРАТЬ MAX (id) FROM table LIMIT 1». Этот запрос возвращает правильный номер (с использованием print_r ()), но я не могу понять, как получить к нему доступ. Вот основной код. Обратите внимание, что ссылка $ this-> относится к классу с подключением к mysqli.

$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 ($ row) выводит "stdClass Object ([max (id)] => 68)"


person Theopile    schedule 12.06.2010    source источник


Ответы (3)


Вам нужно назвать совокупный результат.

SELECT MAX(id) AS maxid FROM stones

Затем вы можете получить доступ к значению типа $row->maxid.

person nikc.org    schedule 12.06.2010
comment
Спасибо, что работает. Я нашел менее чистое решение, и оно заключается в использовании fetch_array () вместо fetch_object. Но я попробую твое. - person Theopile; 12.06.2010

Ты пробовал :

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

Возможно, вам потребуется выбрать max (id) как «MaxID» и $ lastid = $ row-> MaxID;

person Gary    schedule 12.06.2010

Мне нужна самая последняя действительная запись в таблице базы данных, которая будет строкой с наибольшим первичным ключом.

Вы говорите, что хотите последнюю запись, но получаете только идентификатор. Предположительно вы собираетесь использовать это для получения всей строки вторым запросом.

Вместо этого вы можете выполнить всю операцию за один запрос:

SELECT *
FROM stones
ORDER BY id DESC
LIMIT 1
person Mark Byers    schedule 12.06.2010
comment
Спасибо за ответ, но мне нужен только идентификатор - person Theopile; 12.06.2010