Zend_Db -> update () увеличивает мои значения в два раза? - PullRequest
0 голосов
/ 29 ноября 2011

У меня довольно странная проблема, связанная с zend_db в Zend Framework.

Я использую

$this -> update(array('visits' => new Zend_Db_Expr('`visits` + 1')), new Zend_Db_Expr("`ip` = '{$ip}' AND `day` = {$day} AND `month` = {$month} AND `year` = {$year}"));

с шагом visits с 1. Проблема в том, что Zend увеличивает его со значением * 2, в данном случае 2, если я скажу visits + 5, то оно увеличивается с 10? !!

Это действительно странно, поскольку работает чистый SQL. Я попытался перейти к коду функции Update (), затем я просто говорю exit($sql), и я вижу, что SQL в порядке, он работает правильно под phpMyAdmin, за исключением случаев, когда я запускаю update ().

Я подумал, что мог бы дважды вызвать update (), поэтому я поставил exit (); в нем, так что он сломается после запуска один раз ... та же проблема ...

Заранее спасибо!

Кстати, мой Zend Framework - 1.11.11 или менее.

1 Ответ

2 голосов
/ 29 ноября 2011

что произойдет, если вы напишите это как стандартное обновление sql без функции update () zend_db_table?это работает как ожидалось?

$this->_db->query('UPDATE ' . $this->_name . ' SET visits = visits + 1 WHERE ip = ? AND `day` = ? AND `month` = ? AND `year` = ?", array($ip, $year, $month, $day);

Если все работает правильно, значит, что-то не так с функцией update ().Если это все еще проблема, вы можете как-то запустить скрипт дважды.

Кроме того, ваш класс расширяется непосредственно от Zend_Db_Table_Abstract?У меня было несколько случаев, когда функция обновления была переопределена с другой логикой.

...