相关疑难解决方法(0)

PHP mysql_stmt :: fetch()使PHP致命错误内存耗尽

CentOS 6.4 PHP 5.3.3 MySQL 5.1.69 x86_64

mysql_stmt::fetch()
Run Code Online (Sandbox Code Playgroud)

当使用预准备语句执行fetch时,PHP会产生错误:PHP致命错误:允许的内存大小为134217728字节耗尽(尝试分配4294967296字节).

当用于创建临时表的SELECT语句中包含的变量未设置时,无论是否在调用存储过程之前在环境中设置该变量,都会发生这种情况.必须在存储过程中设置变量.当SELECT语句用于将临时表中的数据返回给PHP,并且PHP使用mysql_stmt :: fetch()来访问数据时,PHP会生成上述致命错误.

MySQL代码:

DELIMITER $$
CREATE PROCEDURE test_sp()
BEGIN

    # uncomment below line, and PHP call to mysqli_stmt::fetch() works
    # SET @status = 1;

    # remove tmp table
    DROP TABLE IF EXISTS tmp_table;
    # CREATE TEMPORARY TABLE
    CREATE TEMPORARY TABLE tmp_table
        SELECT @status AS status;

    SELECT * FROM tmp_table;

END $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

PHP代码:

// obtain MySQL login info
require_once(MYSQLOBJ);

// initialize status
$status = "";


$db = new mysqli( …
Run Code Online (Sandbox Code Playgroud)

php mysql centos fetch

4
推荐指数
1
解决办法
1540
查看次数

标签 统计

centos ×1

fetch ×1

mysql ×1

php ×1