Zend_Db - > update()将我的值递增两次?

时间:2011-11-29 17:30:37

标签: php zend-framework zend-db

我有一个与zend framework的zend_db相关的非常奇怪的问题。

我用

$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}"));

用{1}增加{问题1}问题是Zend用值* 2递增它,在这种情况下是2,如果我说visits + 5,它然后以10增加?!! < / p>

这很奇怪,因为纯SQL工作。我已经尝试过使用Update()函数的代码,然后我只是说visits我可以看到SQL没问题,它在phpMyAdmin下正常运行,除非我让update()运行。 / p>

我以为我可能会在某处调用update()两次,所以我放了exit();在它,所以它会在运行一次之后中断......同样的问题......

提前致谢!

顺便说一句,我的zend框架是1.11.11或更低。

1 个答案:

答案 0 :(得分:2)

如果你把它写成标准的sql更新,没有zend_db_table的update()函数会怎么样?它按预期工作吗?

$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延伸?在某些情况下,更新功能被覆盖了不同的逻辑。