Kohana查询生成器更新



你好,我正在用Kohana查询生成器构建查询,我试图得到这种查询:

UPDATE `report_count` SET `report_count`=  report_count + 1;

我现在拥有的是:

DB::update('report_count')->set(array('report_count' => 'report_count + 1'));

输出如下查询:

UPDATE `report_count` SET `report_count` = 'report_count + 1'

所以我的问题是它把' '放在report_count + 1周围。我怎样才能去掉这些?

您需要使用表达式对象。Kohana的查询生成器允许您使用DB::expr创建表达式。

查询生成器通常会转义其所有输入,正如您希望的那样,但是作为表达式对象提供的文本将按原样包含在查询中。

文档中给出的示例基本上是您的确切情况:

$query = DB::update('users')->set(array('login_count' => DB::expr('`login_count` + 1')))->where('id', '=', $id);

这会生成如下查询(id值为45只是一个示例):

UPDATE `users` SET `login_count` = `login_count` + 1 WHERE `id` = 45

最新更新