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标识符的正确方法。