【问题标题】:How to execute a multiple raw query using laravel?如何使用 laravel 执行多个原始查询?
【发布时间】:2016-05-10 15:45:41
【问题描述】:

我正在使用 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: )

【问题讨论】:

    标签: php laravel laravel-4 laravel-5 laravel-5.2


    【解决方案1】:

    你能不能把你的 sql 查询写在一个变量中,然后像下面这样传递它:

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

    希望这会有所帮助。干杯。

    【讨论】:

    • 我正在尝试选择一个数据集。 DB::raw 或 DB:unprepared 将执行查询并返回 true/false 而不是数据集。另外根据我在问题中的注释。 DB::select(DB::unprepared($sql)) 会给我一个错误SQLSTATE[HY090]: [Microsoft][ODBC Driver Manager] Invalid string or buffer length (SQL: )
    【解决方案2】:

    我想通了。

    我认为选择“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')"
    

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 2018-10-30
      • 2019-04-27
      • 1970-01-01
      • 2017-04-08
      • 2019-08-27
      • 2021-06-24
      • 1970-01-01
      相关资源
      最近更新 更多