Prestashop Db::getInstance()->insert()未显示错误,无法工作

Prestashop Db::getInstance()->insert()未显示错误,无法工作,prestashop,Prestashop,我正在将数据插入数据库。它无法插入。如果我通过原始SQL执行同样的操作,它就会工作。也不会显示任何错误 $products = Context::getContext()->cart->getProducts(); foreach($products as $product){ $id_product = $product['id_product']; $is_allowed = (bool) Db::getInstance()->execute("

我正在将数据插入数据库。它无法插入。如果我通过原始SQL执行同样的操作,它就会工作。也不会显示任何错误

 $products = Context::getContext()->cart->getProducts();
 foreach($products as $product){
      $id_product = $product['id_product'];
      $is_allowed = (bool) Db::getInstance()->execute("SELECT available_for_order FROM ps_product WHERE id_product=".$id_product); // is product availabe for order when stock is null or zero. 

      // $sql = 'INSERT INTO `cart_log` (`id_product`,`ids_product_attribute`,`stock`,`reference`,`available_for_order`,`created_at`)
      // VALUES (' . $id_product. ', ' . $product['id_product_attribute'] . ',' . $product['stock_quantity'] . ', ' . $product['reference'] .','. $is_allowed .', NOW())';
      // die($sql);
      $data= array(
           'id_product' => (string) $id_product,
           'ids_product_attribute' =>(string) $product['id_product_attribute'],
           'stock' =>(string) $product['stock_quantity'],
           'reference' =>(string) $product['reference'],
           'available_for_order' =>(int) $is_allowed,
           'created_at' => 'NOW())'
      );
      echo "<pre>";
      print_r($data);
      echo "</pre>";

      $result= Db::getInstance()->insert('cart_log',$data);
 }
尝试替换:

$is_allowed = (bool) Db::getInstance()->getValue("SELECT available_for_order FROM ps_product WHERE id_product=".$id_product); // is product availabe for order when stock is null or zero. 

如果请求已正确执行,execute将返回true或false,但不会返回请求结果。getValue将返回您请求的结果

还有getRow可以获取同一行的多个元素,执行getRow可以获取多行


关于

您可以添加购物车日志表定义吗?您创建的列的类型是什么?您正在传递字符串“NOW”,而不是数组$data中的日期
$is_allowed = (bool) Db::getInstance()->getValue("SELECT available_for_order FROM ps_product WHERE id_product=".$id_product); // is product availabe for order when stock is null or zero.