Обновление построителя запросов Kohana - PullRequest
3 голосов
/ 23 ноября 2011

Здравствуйте, я создаю запросы с помощью 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 Ответ

7 голосов
/ 23 ноября 2011

Вам необходимо использовать объект выражения .Построитель запросов 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
...