Zend framework Zend#u Db#u表-更新don';行不通

Zend framework Zend#u Db#u表-更新don';行不通,zend-framework,zend-db-table,Zend Framework,Zend Db Table,代码似乎不起作用 // $counter is an instance of Zend_Db_Table_Abstract $counter->update(array('hits' => 'hits+1'), '"id" = 1'); 我查看了DB profiler,发现以下查询: UPDATE `downloads` SET `hits` = ? WHERE ("id" = 1) 您需要使用Zend_Db_Expr(一个SQL表达式)的实例来实现此功能(未经测试): 。。。或

代码似乎不起作用

// $counter is an instance of Zend_Db_Table_Abstract
$counter->update(array('hits' => 'hits+1'), '"id" = 1');
我查看了DB profiler,发现以下查询:

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

您需要使用
Zend_Db_Expr
(一个SQL表达式)的实例来实现此功能(未经测试):

。。。或者类似的我认为应该有效的方法。如果它不起作用,请报告,我会给出一个经过测试的答案

更新:
好的,我对它进行了测试,如果在where子句中去掉
id
的引号,它就可以工作了<代码>id不应解释为文字字符串,而应解释为列名。也许你需要用反勾来代替?比如“`id`=1”。这是引用MySQL标识符的正确方法

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