Zend_Db_Table - 更新不起作用

问题描述:

该代码似乎无法正常工作。Zend_Db_Table - 更新不起作用

// $counter is an instance of Zend_Db_Table_Abstract 
$counter->update(array('hits' => 'hits+1'), '"id" = 1'); 

我接过来一看进入DB探查,找到以下查询:

UPDATE `downloads` SET `hits` = ? WHERE ("id" = 1) 

您需要使用的Zend_Db_Expr(SQL表达式)一个实例来得到这个工作(未经测试):

$counter->update(array('hits' => new Zend_Db_Expr('hits+1')), 'id = 1'); 

...或类似的东西,我相信应该工作。回报如果它不起作用,我会提出一个经过测试的答案。

UPDATE:
好吧,我测试了它,和它的作品,只要你在where子句中失去周围id引号。不应该将id解释为文字字符串,而应将其解释为列名称。也许你会反而使用反引号?像'`id` = 1'一样。这是引用MySQL标识符的正确方法。