2016-05-15 2 views
0

Я создаю приложение laravel, где мне нужно создать отчет, для этого я создал контроллер и в этом я написал запрос для создания этого отчета, но это показывая следующую ошибку.PHP - Laravel: Raw Sql Query, показывающий ошибку в контроллере

FatalErrorException в RoomController.php: ошибка синтаксиса, неожиданный «R» (T_STRING)

Проблема заключается с R Нет, не является базой данных, но, чтобы показать в докладе я должен используйте это со значением строки, которое я конкретизировал. Как решить проблему?

public function ajax_view_schedule(Request $request) 
    { 
     $dept_id=$request->get(['dept_id']); 
$schedule= DB::select(DB::raw('SELECT courses.code as c_code, courses.name as c_name,COALESCE(CONCAT('R. No',':',rooms.room_number,', ',days.name ,', ', allocate_rooms.start,' - ',allocate_rooms.end),"Not Scheduled Yet") AS Schedule 
FROM departments join courses on departments.id = courses.department_id 
left join allocate_rooms on allocate_rooms.course_id=courses.id 
left join rooms on allocate_rooms.room_id=rooms.id 
left join days on allocate_rooms.day_id=days.id WHERE departments.id='.$dept_id.'')); 
     return \Response::json($course); 
    } 

ответ

1

Попробуйте указать вашу строку PHP с двойными кавычками и одинарными кавычками в вашем SQL-запросе.

Таким образом, строка запроса будет выглядеть следующим образом:

$schedule= DB::select(DB::raw("SELECT courses.code as c_code, courses.name as c_name,COALESCE(CONCAT('R. No',':',rooms.room_number,', ',days.name ,', ', allocate_rooms.start,' - ',allocate_rooms.end),'Not Scheduled Yet') AS Schedule 
FROM departments join courses on departments.id = courses.department_id 
left join allocate_rooms on allocate_rooms.course_id=courses.id 
left join rooms on allocate_rooms.room_id=rooms.id 
left join days on allocate_rooms.day_id=days.id WHERE departments.id='.$dept_id.'")); 
1

ошибка указывает на эту часть:

CONCAT('R. No',':',rooms.room_number,', ',days.name ,', ', allocate_rooms.start,' - ',allocate_rooms.end) 

взгляните на 'R. No

вы не можете просто положить строку за пределами кавычек и надеемся, что PHP будет понять, что делать с это, , если вы хотите поставить кавычки внутри котировок, вам необходимо их избежать, Escaping quotation marks in PHP

Смежные вопросы