3

您好,我正在使用 Kohana Query Builder 构建查询,并且正在尝试获取这种查询:

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。我怎样才能删除这些?

4

1 回答 1

7

您需要使用表达式对象。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
于 2011-11-22T23:21:10.040 回答