gpt4 book ai didi

php - bind_result 上允许的字节内存大小耗尽

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:20 26 4
gpt4 key购买 nike

我有一个由联合较小查询构建的动态查询。我使用 union 是因为我需要从一个大列表中的几个表中获取数据。这些表有很多共同点,但我仍然需要单独表中的数据。因此我认为这个解决方案似乎是最好的解决方案。到目前为止效果很好,但今天我添加了更多查询,现在它坏了,它给了我这个错误:

fatal error :允许的 134217728 字节内存已耗尽(已尝试分配 150994936 字节)

错误指的是这个函数:

function selectResults($stmt){
$parameters = array();
$results = array();

$meta = $stmt->result_metadata();

while ( $field = $meta->fetch_field() ) {
$parameters[] = &$row[$field->name];
}

//------THIS IS WHERE THE ERROR IS------
call_user_func_array(array($stmt, 'bind_result'), $parameters);
//--------------------------------------

while ( $stmt->fetch() ) {
$x = array();
foreach( $row as $key => $val ) {
$x[$key] = $val;
}
$results[] = $x;
}

return $results;

}

函数是这样调用的:

$mysqli = new mysqli('localhost', 'username', 'pass', 'db');
$stmt = $mysqli -> prepare("some query");
$stmt -> execute();
$results = selectResults($stmt);
$stmt -> close();
$mysqli -> close();

查询可以是 1500 字左右,是不是太多了?

将所有表放在同一个表中并只进行一个查询是否可以解决这个问题?

最佳答案

我尝试将最新的子查询与另一个子查询一起使用,但它仍然给我错误。所以我认为新的子查询是问题而不是子查询的数量。新的子查询有一个 mediumtext 字段,而另一个子查询有一个 varchar。我尝试将 mediumtext 切换为 varchar,现在它可以工作了。我没有理由将它用作 mediumtext,所以这解决了它。

关于php - bind_result 上允许的字节内存大小耗尽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15731331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com