2011-09-19 51 views
8

使用Zend_Db_Table_Abstract有什麼辦法可以做下面的代碼嗎?Zend Framework MySQL更新列

UPDATE table SET value=value+1 WHERE value < 10; 

我想是這樣的:

$tableModel->update(array('value=value+1'),'value<10'); 

,但沒有成功。

我可以獲取SELECT中的數據,然後只加1,但這是不行的,因爲它非常慢。

回答

11

第一個參數數組是列和值的關聯映射。如果您沒有使用絕對值,即您想使用表達式或函數,則需要使用Zend_Db_Expr。以下應增加當前值低於10的任何行的「值」列。

$tableModel->update(array(
    'value' => new Zend_Db_Expr('value + 1') 
), 'value < 10');