我使用的是Laravel 5.2。我有一个我想要执行的原始SQL语句。
这是我试过的
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: )
答案 0 :(得分:3)
您可以在变量中编写sql查询并将其传递给以下内容:
\DB::unprepared( $mySQLQuery ); //mySQLQuery is complete query you want to be executed as you would do inside the DBMS..
希望这会有所帮助。欢呼声。
答案 1 :(得分: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')"