Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从Laravel 5.3应用程序调用存储过程会导致';未捕获的PDO异常';_Php_Stored Procedures_Laravel 5 - Fatal编程技术网

Php 从Laravel 5.3应用程序调用存储过程会导致';未捕获的PDO异常';

Php 从Laravel 5.3应用程序调用存储过程会导致';未捕获的PDO异常';,php,stored-procedures,laravel-5,Php,Stored Procedures,Laravel 5,从Laravel 5.3应用程序中调用存储过程时遇到问题。页面脚本失败,apache日志文件中生成了以下日志项: PHP致命错误:允许的内存大小134217728字节已用尽(尝试分配842018128字节) 未捕获PDOException:SQLSTATE[HY000]:一般错误:2014无法在其他未缓冲查询处于活动状态时执行查询 我试图通过增加php.ini文件中的内存限制进行补救,但没有效果 在以下语句中生成错误: $pages = DB::select('call sp_get_pages

从Laravel 5.3应用程序中调用存储过程时遇到问题。页面脚本失败,apache日志文件中生成了以下日志项:

  • PHP致命错误:允许的内存大小134217728字节已用尽(尝试分配842018128字节)
  • 未捕获PDOException:SQLSTATE[HY000]:一般错误:2014无法在其他未缓冲查询处于活动状态时执行查询
  • 我试图通过增加php.ini文件中的内存限制进行补救,但没有效果

    在以下语句中生成错误:

    $pages = DB::select('call sp_get_pages_for_audio_section(1133)');
    
    我的存储过程如下所示:

    CREATE PROCEDURE `sp_get_pages_for_audio_section`(IN topic_id INT UNSIGNED)
    BEGIN
        SET @id = topic_id;
    
        SELECT p.id, p.title, p.page_order, p.include_audio, a.filename,
            a.body, a.directions, a.media_type, a.id as asset_id,
            a.play_blank_mp3, a.cc_file, a.cc_swf, plt.title AS plt_title,
            l.id as lesson_id,
        CASE p.page_layout_template
            WHEN 0 THEN FALSE
            ELSE TRUE
        END
            AS has_plt,
        IF ((a.filename IS NOT NULL AND length(a.filename) > 0), 1, 0)
            AS audio_asset_fulfilled,
        IF ((a.filename IS NULL OR a.filename = '') AND (length(a.body) > 0 OR length(a.directions) > 0), 1, 0)
            AS audio_asset_unfulfilled
        FROM pages p
            LEFT JOIN page_layout_templates plt
                ON plt.id = p.page_layout_template
            LEFT JOIN assets a
                ON a.page_id = p.id
                    AND a.asset_type = 'audio'
            INNER JOIN topics t
                on t.id = p.parent_topic_id
            INNER JOIN lessons l
                on t.parent_lesson_id = l.id
        WHERE p.parent_topic_id = @id
            ORDER BY page_order ASC;
      END
    
    我隔离了通话声明

    $pages = DB::select('call sp_get_pages_for_audio_section(1133)');
    
    一个函数本身具有相同的结果


    谢谢你的帮助

    输入以下两行内容解决了问题:

    $pdo = DB::connection()->getPdo();
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);