【问题标题】:Kohana query builder updateKohana 查询生成器更新
【发布时间】:2011-11-22 23:08:13
【问题描述】:

您好,我正在使用 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 周围。如何删除这些?

【问题讨论】:

    标签: php kohana kohana-db


    【解决方案1】:

    你需要使用一个表达式对象。 Kohana 的查询构建器允许您使用 DB::expr 创建表达式。

    查询构建器通常会按照您的意愿转义其所有输入,但作为表达式对象提供的文本将按原样包含在查询中。

    documentation 中给出的例子基本上就是你的具体情况:

    $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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      相关资源
      最近更新 更多