Увеличить столбец в MySQL

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

Спасибо

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

Мой текущий код выглядит так:

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

person edwinNosh    schedule 23.03.2011    source источник
comment
да - после того, как вы предоставите более подробную информацию   -  person bensiu    schedule 23.03.2011
comment
Вы имеете в виду Zend Framework? Если да, то какой компонент? Zend_Db, Zend_Db_Table, что-то еще?   -  person Phil    schedule 23.03.2011


Ответы (3)


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

$row->votes++;
person Phil    schedule 23.03.2011
comment
Очень простое решение. Спасибо. - person edwinNosh; 23.03.2011
comment
Это страдает от состояния гонки между соединениями и является плохим решением. - person Justin Swanhart; 04.08.2012

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

$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);
person RDL    schedule 23.03.2011
comment
Понижение за мой старый ответ или новый? Я почти уверен, что новый правильный, не так ли? - person RDL; 23.03.2011
comment
Да, $row->votes++; было бы правильно. В будущем это поможет показать связанный код в вашем вопросе, чтобы мы могли помочь вам найти наилучшее возможное решение. - person RDL; 23.03.2011

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

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

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)
person Steve L    schedule 27.09.2011