call_user_func_array上的php内存耗尽,用于mysqli选择查询

时间:2018-05-26 02:45:01

标签: php mysqli mamp

我的脚本在这行代码处停止(只是空白,没有错误消息,尽管这可能是我的主机设置 - 小橙色):

call_user_func_array(array($stmt, 'bind_result'), refValues($parameters));

以下是进入它的值:

First Array - that is, array($stmt, 'bind_result')
Array
(
    [0] => mysqli_stmt Object
        (
            [affected_rows] => -1
            [insert_id] => 0
            [num_rows] => 0
            [param_count] => 1
            [field_count] => 4
            [errno] => 0
            [error] => 
            [error_list] => Array
                (
                )

            [sqlstate] => 00000
            [id] => 1
        )

    [1] => bind_result
)

Parameter for Ref Values
Array
(
    [0] => 
    [1] => 
    [2] => 
    [3] => 
)

奇怪的是,它在我的本地MAMP实例上运行得非常好(相同的数据库,基本相同的PHP版本 - MAMP是5.6.32,A Small Orange是5.6.35)。 MAMP的MYSQL为5.6.38,小橙色为5.5.51-38.2。

进入函数的值也是相同的。 MySQLi凭证是有效的,因为页面的其余部分有一些SELECT查询可以正常工作。

这是我的主人的问题还是我缺少的东西?我承认我还不熟悉MySQLi,在MYSQL上长大,没有时间真正适应变化。

编辑:新显示的错误代码如下:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 4294967296 bytes) in [REDACTED] on line 171

现在问题是为什么一个相对简单的MYSQL调用使用了这么多内存 - 它只是从一个小小的表(256Kib!)中选择一个小行。

1 个答案:

答案 0 :(得分:0)

错误来自于使用mysqli和数据库中的longtext列(在这种情况下,' templates')。我只是将该列更改为中间文本,现在一切正常。

来源:

Allowed memory size of 134217728 bytes exhausted (tried to allocate 4294967296 bytes)