2016-02-02 1 views
2

Я использую Laravel 5.2. У меня есть исходный оператор SQL, который мне нравится выполнять.Как выполнить множественный необработанный запрос с использованием laravel?

Вот что я пытался

DB::select($sql); 

Однако, это работает для первого запроса. Если я выполнить еще один запрос в том же счете я получаю следующее сообщение об ошибке

FatalErrorException in Connection.php line 323: Cannot access empty property 

Так что, если я исполняю это

DB::select(sql1); 

, а затем

DB::select($sql2); 

Как я могу выполнить несколько запросов в такое же время работы.

У меня есть ошибка. Нужно ли мне повторно инициализировать класс DB, прежде чем я вызову второй запрос? если да, то как бы сбросить его?

ОБНОВЛЕНО

dd($sql ); 

Я получаю следующее

" SELECT TOP 1 '1' FROM survey_answer_defined INNER JOIN survey_answer_groups ON survey_answer_groups.id = survey_answer_defined.group_id WHERE survey_answer_groups.interview_id = '243' AND survey_answer_groups.control_id IN(300) AND 'E' IN('A','B','D','E')" 

Если я пытаюсь следующий вместо

DB::select(DB::unprepared($sql)) 

Я получаю следующее сообщение об ошибке

SQLSTATE[HY090]: [Microsoft][ODBC Driver Manager] Invalid string or buffer length (SQL:) 

ответ

1

Вы можете написать свои запросы SQL в переменном и передать его как следующее:

\DB::unprepared($mySQLQuery); //mySQLQuery is complete query you want to be executed as you would do inside the DBMS.. 

Надеется, что это помогает. Приветствия.

+0

Я пытаюсь выбрать набор данных. DB :: raw или DB: unprepared выполнит запрос и вернет true/false, а не набор данных. Кроме того, на мои заметки в вопросе. 'DB :: select (DB :: unprepared ($ sql))' даст мне ошибку 'SQLSTATE [HY090]: [Microsoft] [ODBC Driver Manager] Недопустимая длина строки или буфера (SQL:)' –

0

Я понял.

Я думаю, что выбор «1» не работает с Laravel.

Вот ва я сделал для запроса работать

Я изменил

SELECT TOP 1 '1' 
FROM survey_answer_defined INNER JOIN survey_answer_groups ON survey_answer_groups.id = survey_answer_defined.group_id WHERE survey_answer_groups.interview_id = '243' AND survey_answer_groups.control_id IN(300) AND 'E' IN('A','B','D','E') 

в

SELECT TOP 1 survey_answer_defined.id 
FROM survey_answer_defined INNER JOIN survey_answer_groups ON survey_answer_groups.id = survey_answer_defined.group_id 
WHERE survey_answer_groups.interview_id = '243' AND survey_answer_groups.control_id IN(300) AND 'E' IN('A','B','D','E')" 

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

  • Нет связанных вопросов^_^