Обновление построителя запросов Kohana
Здравствуйте, я создаю запросы с помощью 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
, Как я могу удалить это?
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