我正在使用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 exabyte?
php.ini中的内存限制设置为128M,我尝试将其增加到500M。
memory_limit = 500M
我还尝试将以下内容放在脚本的开头
ini_set('memory_limit', '-1');
在互联网上随处搜索,但没有解决我的问题,仍然试图找出原因。
任何帮助都将受到高度赞赏。
注意:
查询中选择的非列为空或空
答案 0 :(得分:3)
您尝试分配
1.80638854 × 10^13 megabytes
500MB还不够;)我认为您的查询或odbc模块中存在错误。
在64位版本中,当其中一个返回字段为NULL时,odbc会崩溃。因此,解决方法是在重新查询时替换所有空字段。
select ifnull(tluser,'') as USER from database.table
这可以帮助您解决问题。您可以在此处获得更多信息: