首页 > 解决方案 > Codeigniter:如何在 for 循环中增加活动记录?

问题描述

我正在使用 PostgreSQL,并且我有一个表格,其中在其列中包含一年中的周数。我尝试通过在嵌套循环中增加这些列的值来更新。

我有以下查询,它试图增加记录的相关字段。

foreach ( $updateVotes as $key => $value ) {

     for ( $week = 1; $week < 53 ; $week++) {

       $increaseValue = $value['week_'.$week];
       $this->db->set("week_".$week , "week_".$week. " +".$increaseValue, "FALSE");

     }

       $this->db->where('id', $id)
                ->update('votes');
 }

为了实现我的目标,我需要如下输出:

UPDATE "votes" 
SET week_1 = week_1 +20,
    week_2 = week_2 +50,
     ...
WHERE id = 1

但是,当我运行查询时,它会生成以下 SQL:

UPDATE "votes" 
SET "week_1" = 'week_1 +20',
    "week_2" = 'week_2 +50',
     ...
WHERE id = 1

由于它还会产生单引号,因此会引发如下错误: column 'week_1 +20' cannot found

如何转义这些单引号并成功运行查询?

标签: postgresqlcodeigniter

解决方案


将"FALSE"中的双引号删除为FALSE


推荐阅读