Увеличить столбец в MySQL - PullRequest
1 голос
/ 23 марта 2011

Есть ли в Zend способ увеличить целое число в столбце MySQL на 1?

Спасибо

редактирование:

Мой текущий код похож на:

$row = $this->find($imageId)->current();
$row->votes = // THIS IS WHERE I WANT TO SAY INCREMENT
$row->save();

Ответы [ 3 ]

17 голосов
/ 23 марта 2011

Да, есть.Вот пример использования продуктов и увеличения поля количества:

$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);
5 голосов
/ 28 сентября 2011

голосов ++ не защищает от состояния гонок от других запросов, поэтому желательно иметь решение для базы данных.

Например: представьте, что два запроса приходят почти одновременно

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)
0 голосов
/ 23 марта 2011

Могу ли я предложить следующее предложение

$row->votes++;
...