Zend中有一種將MySQL列中的整數加1的方法嗎?在MySQL中增加一列
感謝
編輯:
我當前的代碼是這樣的:
$row = $this->find($imageId)->current();
$row->votes = // THIS IS WHERE I WANT TO SAY INCREMENT
$row->save();
Zend中有一種將MySQL列中的整數加1的方法嗎?在MySQL中增加一列
感謝
編輯:
我當前的代碼是這樣的:
$row = $this->find($imageId)->current();
$row->votes = // THIS IS WHERE I WANT TO SAY INCREMENT
$row->save();
我可能提供以下建議
$row->votes++;
一個非常簡單的解決方案。 謝謝。 – edwinNosh 2011-03-23 05:10:55
這遭受連接之間的競爭條件,並且是一個不好的解決方案。 – 2012-08-03 23:01:15
是的,有。下面是使用的產品和遞增數量字段的例子:
$table = 'products';
$data = array('prd_qnty' => new Zend_Db_Expr('prd_qnty + 1'));
$where[] = $db->quoteInto('pr_id = ?', $this->pr_id);
$db->update($table, $data, $where);
票++不保護免受其他請求的競爭條件,這就是爲什麼它是需要有一個數據庫方案。
例如:假設有兩個請求都在幾乎同一時間
1st request loads object - votes is 500
2nd request loads object - votes is 500
1st increments value in memory - votes is 501
2nd increments value in memory - votes is 501
1st saves to db - votes is 501
2nd saves to db - votes is 501 (should be 502)
是 - 你提供更多細節 – bensiu 2011-03-23 04:16:37
你的意思是Zend框架後?如果是這樣,哪個組件? Zend_Db,Zend_Db_Table,別的嗎? – Phil 2011-03-23 04:32:02