Zend Framework SQL-запрос на обновление - PullRequest
2 голосов
/ 05 декабря 2009

Как бы я написал этот SQL в Zend Framework?

UPDATE register 
SET balance = (balance + 10) 
WHERE added_date > 1259944184 ;

Я не могу найти никаких примеров этого на веб-сайте Zend или в Интернете.

Нужно ли использовать "Zend_Db_Expr"?

Ответы [ 4 ]

3 голосов
/ 07 июня 2010

Это сработало для меня:

$data = array(balance => new Zend_DB_Expr('balance + 10'));

$db->update('register ', $data, 'added_date > 1259944184');
1 голос
/ 09 мая 2012

Попробуйте это ... убедитесь, что ваша модель готова.

$table = new register();

Это модель класса

balance=balance+10;

$data = array( 'balance' => 'balance' );

$where = $table->getAdapter()->quoteInto('added_date > '. 1259944184 );

Вы можете использовать $ where [] для нескольких условий

$table->update($data, $where);

Для получения более подробной информации перейдите по ссылке

1 голос
/ 05 декабря 2009

согласно документации Zend Framwork

используйте это

$data = array(
    'balance'      => 'balance + 10'
);

$n = $db->update('register ', $data, 'added_date > 1259944184');
0 голосов
/ 27 апреля 2013

Я использовал это, чтобы изменить порядок элементов наверх. Код, как следует из таблицы, расширяющей класс Zend_Db_Table_Abstract:

$data = array('i_order' => new Zend_DB_Expr('i_order + 1'));

return $this->getAdapter()->update($this->_name, $data, "i_id != {$oCurrent->i_id} AND i_order < {$i_order}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...