已用尽134217728字节的允许内存大小(尝试分配18063885380364533825字节)


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

我正在使用odbc_connect()连接Ubuntu 14.04 上托管的脚本中的firebird数据库

查询只能获取一行

$connect = odbc_connect("EXAMPLE", "GONE", "fishing");
$query = "SELECT REMITTONAME, REMITADDRESS, REMITCITY FROM PO WHERE NUM=10072";
$result = odbc_exec($connect, $query);

错误发生在第3行,我调用odbc_exec($connect,$query)

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

我很惊讶odbc_exec函数为什么试图分配15.66 EB?

我在php.ini中的内存限制设置为128M,并试图将其增加到500M。

memory_limit = 500M

我还试着在我的脚本开始时放在下面

ini_set('memory_limit', '-1');

在互联网上到处搜索,但都没有解决我的问题,仍在努力找出原因。

如有任何帮助,我们将不胜感激。

注意:

查询中选择的非列为null或空

您尝试分配

1.80638854 × 10^13 megabytes 500MB不够;)我认为您的Query或odbc模块中有一个错误。

在64位版本中,当其中一个返回字段为NULL时,odbc会崩溃。因此,解决方法是在检索查询时替换所有空字段。

select ifnull(tluser,'') as USER from database.table

这应该能帮助你解决问题。您可以在这里获得更多信息:

Linux odbc致命错误:允许的内存大小

相关文章:
  • 没有找到相关文章