Prestashop 1.6.1.14 - 数据库查询 Returns 1 执行

Prestashop 1.6.1.14 - Database Query Returns 1 on Execute

我目前在 Prestashop 中使用下面的代码来检索购物车 ID。

    public function hookDisplayPDFInvoice($params) {

    $order_invoice = $params['object'];
    $id_order = (int)$order_invoice->id_order;

    $sql = 'SELECT id_cart FROM '._DB_PREFIX_.'orders WHERE id_order="'.$id_order.'"';
    //example id_cart
    $id_cart = Db::getInstance()->execute($sql);
    return $id_cart;

在数据库中,有id_cart和id_timeslot。 Table 被称为 ps_cart_timeslot.

我很困惑,因为我很困惑为什么我正在检索的任何数据的数据 return 都是 1。

$id_order 很好,return 是正确的值。我正在查询的任何数据 select 都将 return 1.

我错过了什么吗?如果这是一个愚蠢的错误,请原谅我。

谢谢。

对于 selects 使用 Db::getInstance()->executeS($sql); 或获取单个值使用 Db::getInstance()->getValue($sql);

但是从 PS 1.6 开始,您应该使用查询生成器。

$query = new DbQuery();
$query->select('id_cart')
      ->from('orders')
      ->where('id_order = ' . (int)$id_order);
Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query);
// Or array of values
Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query);

execute() 方法 return 仅 true or falseexecuteS() 将 return 一个 select 结果数组(方法只能用于对于 select 查询)和 getValue() 将 return 在结果中找到的第一个值。