2010-10-23 37 views
0

我如何在cakephp上做這些事?在cakephp中辦理

是否有可能將表中的數據複製到另一個表中?

這裏是我的例子。我有兩個表,倉庫和陳列室

我的倉庫表有(產品和stock_quantity)和我的陳列室表有(產品編號(從倉庫FK),stock_transferred)..

例如在倉庫表

product_id  stock_quantity 
1    10 
2    20 

如何在陳列室表格中將stock_quantity(5)的product_id(1)轉移並保留倉庫表中的數據?

所以傳輸數據後,我的倉庫表成爲這些:

product_id  stock_quantity 
1    5 
2    20 

和我的陳列室表成爲這些:

product_id  stock_transferred 
1    5 

我如何能在一個CakePHP的做這些,比如我有一個文本?用戶可以在其中指定他將轉移到陳列室表的多少股票。

對不起,我無法解釋我不擅長英語。

BEGIN TRAN 

INSERT INTO showroom 
SELECT product_id, @ValueToBeReduced FROM warehouse 
WHERE product_id = 1 

-- error handling 

UPDATE warehouse 
SET stock_quantity = stock_quantity - @ValueToBeReduced 
INNER JOIN showroom 
ON warehouse.product_id = showroom.product_id 
AND showroom.product_id = 1 

-- error handling 

COMMIT TRAN 
+0

沒有答案幫助你的?如果是的話,接受。如果沒有 - commnet – Kuf 2013-02-04 15:07:07

回答

0

使用begin()DataSource類或Model類的transactional財產commit()/rollback()方法。您還可以使用query()方法提供原始SQL查詢。

0

這是一個基本的模板來做交易CakePHP中:

$this->Model->begin(); 
$returnQuery = $this->Model->query($query); // or $returnQuery = $this->Model->save($data); 
if($returnQuery !== false){ 
    $this->Model->commit(); 
}else{ 
    $this->Model->rollback(); 
} 
+0

我應該在哪裏放這些?.. – 2010-10-29 01:25:41

+0

在控制器中。將'Model'替換爲您的型號名稱。 – bancer 2010-10-29 06:29:52