Как сделать запрос на обновление с параметрами и оператором CASE в Laravel 4

Я пытаюсь создать mysql UPDATE-запрос, который будет принимать параметры. Кроме того, я хочу добавить в конец поля, если поле не пусто. Для этого я использую оператор CASE. Вот мой запрос в доктрине (от силекса):

$query = "UPDATE table SET filed = ( CASE WHEN field = '' THEN :param1 ELSE concat(field, :param1) END) WHERE id=:param2"; $app['db']['test_db']->executeUpdate($sql, array('param1' => $user_text, 'param2' => $selected_id)); 

Теперь я хочу преобразовать его в свободный или сырой запрос, чтобы я мог использовать его в Laravel 4.

Вот мой код:

 $param1 = "String..."; // user string $param2 = 45; // id DB:connection('test_db')->statement("UPDATE table SET field =( case WHEN field='' THEN $param1 ELSE concat(field, $param1) END) WHERE id=$param2"); 

Когда я выполняю этот запрос в Laravel, я вижу

Ошибка синтаксиса или нарушение доступа: 1064

Любая помощь будет оценена.

Related of "Как сделать запрос на обновление с параметрами и оператором CASE в Laravel 4"

Попробуйте запустить его с помощью raw() :

 DB::statement( DB::raw( "UPDATE table SET field = ( CASE WHEN field='' THEN ? ELSE concat(field, ?) END ) WHERE id=?" ), array($param1, $param1, $param2) );