Codeigniter: Как увеличить активные записи в течение l oop? - PullRequest
0 голосов
/ 20 марта 2020

Я использую 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

Как я могу избежать этих одинарных кавычек и успешно выполнить запрос?

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Согласно официальному документу здесь , вы должны передать FALSE (Bool) вместо "FALSE" (String) вот так

$this->db->set("week_".$week , "week_".$week. " +".$increaseValue, FALSE);

Надеюсь, это поможет!

1 голос
/ 20 марта 2020

Удалить двойные кавычки из "ЛОЖЬ" в ЛОЖЬ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...