Zend_Db_Table - 更新不起作用

时间:2010-03-13 19:00:15

标签: zend-framework zend-db-table

代码似乎无效。

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

我查看了数据库分析器并找到以下查询:

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

1 个答案:

答案 0 :(得分:4)

您需要使用Zend_Db_Expr(SQL表达式)的实例才能使其正常工作(未经测试):

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

......或类似的东西,我相信应该有用。如果它不起作用则报告,我会得到一个经过测试的答案。

<强>更新
好吧,我测试了它,并且它可以工作,前提是你在where子句中放宽id周围的引号。不应将id解释为文字字符串,而应将其解释为列名。也许你准备使用反引号?就像这样'`id` = 1'。这是引用MySQL标识符的正确方法。