【发布时间】:2022-12-11 07:10:32
【问题描述】:
该模块无法连接到数据库。
我有一个 prestashop 模块,当启动此挂钩时,它必须对数据库执行任务:hookActionPaymentConfirmation。但是我什么也做不了,不知道是连接问题还是查询问题。这是 hookActionPaymentConfirmation 函数的代码,你看到什么错误了吗?任务是更新同一数据库表中的产品库存。我想用数据库的名称和服务器的名称来完成,因为我打算在外部数据库中实现该表。
` public function hookActionPaymentConfirmation($params)
{
//mail("luilli.guillan@gmail.com", "yiha", "hola");
$database=Configuration::get('MIMODULOMISMADB_ACCOUNT_NOMBREDB', null);
$user=Configuration::get('MIMODULOMISMADB_ACCOUNT_USUARIO', null);
$password=Configuration::get('MIMODULOMISMADB_ACCOUNT_PASSWORD', null);
//
$db = new DbMySQLi("localhost",$user,$password,$database,true);
//$products = $params['cart']->getProducts(true);//en los nuevos ps ya no va y hay que hacerlo con las dos ordenes siguientes
$order = new Order($params['id_order']);
$products = $order->getCartProducts();
foreach ($products as $product)
{
$id_product = $product['id_product'];
$cantidad = $product['cart_quantity'];
$referencia = $product['reference'];
$product_attribute_id = $product['product_attribute_id'];
$newProduct = new Product($id_product);
if($newProduct->hasCombinations())
{
$sql = 'select * from product_attribute where id_product_attribute = ' . (string) $product_attribute_id . ';';
//$rec = DB::getInstance()->getRow($sql);
$rec = $db->getValue($sql);
$referencia = $rec["reference"];
//mail("luilli.guillan@gmail.com", "has combinations", $id_product." ".$referencia." ".$cantidad." p.a: ".$product_attribute);
}
$unidades = $db->getValue('SELECT unidades FROM productos WHERE '.$campoid.' = "'.$referencia.'"');
$unidadesRestantes=$unidades-$cantidad;
$db->Execute('UPDATE productos SET unidades="'.$unidadesRestantes.'" WHERE '.$campoid.' = "'.$referencia.'"');
mail("luilli.guillan@gmail.com", "yay",$database." ".$user." ".$password." ".$unidades);
//mail("luilli.guillan@gmail.com", "yay",$unidades);
}
}`
【问题讨论】:
-
您收到任何错误消息吗?
-
不,我没有收到任何错误。
-
你启用调试模式了吗?
标签: mysql prestashop prestashop-1.7 prestashop-modules