从 Prestashop DB 获取最新价值

Getting Latest Value from Prestashop DB

我正在尝试使用 WHERE 子句检索值,但目前无法正常工作。

$query= new DbQuery();
$query->select('id_carrier')
->from('carrier')
->where('name = ' . "'XXX'");
$carrier_id = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query);

print $carrier_id; //returns the first value found

目前,它返回第一个值,但我需要使用最新值,因为在 Prestashop 运营商中所做的每一次更改,ID 都会更改。因此,我需要获取最新值。

我正在检查并发现了 (int)Db::getInstance()->Insert_ID();但是我试过了,还是不行。

非常感谢任何帮助。谢谢。

由于是自增的Id,正常使用情况下最大的id也是最后插入的,可以使用:

$query= new DbQuery();
$query->select('max(id_carrier)')
    ->from('carrier')
    ->where('name = ' . "'XXX'");
$carrier_id = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query);

Insert_ID() 仅在运营商(在本例中)插入当前连接时才有效。并且只检索最后一个。基本上,如果是刚插入的。

设法让它与下面的代码一起工作:

$query = new DbQuery();
$query->select('id_carrier')
->from('carrier')
->where('name = ' . "'XXX'");
$query->orderBy('id_carrier DESC');
$carrier_id = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query);

因为它只取一个值,所以它现在可以工作了。