odbc_exec libmdb mdbtools耗尽了允许的内存大小

时间:2018-11-27 11:29:33

标签: php mdbtools

我想通过PHP(7.2.10),SLE 12.3连接到我的MS Access数据库。为此,我使用了libmdbodbc.so.1驱动程序,该驱动程序与libmdbodbc1软件包0.7-3.1一起提供(来源:mdbtools-0.7-3.1)。设置是在unixODBC配置中完成的: /etc/unixODBC/odbcinst.ini。

[MdbToolsOdbc]
Description = MDBTools ODBC Driver
Driver = libmdbodbc.so.1
Setup = libmdbodbc.so.1

可以连接到数据库并通过命令行(isql)获取数据,并且不会返回错误。

但是当我尝试通过PHP执行SQL查询时(通过odbc_connect(Driver = MdbToolsOdbc; DBQ =%s,null,null);连接完成)

odbc_exec($connection, "SELECT id FROM table");

我收到一个错误“允许内存容量2097152字节用尽(试图分配140 TB)”。

这里仍然提到了这个问题:

https://github.com/brianb/mdbtools/issues/99

https://bugs.php.net/bug.php?id=75013&thanks=3

有人知道该问题的解决方案或解决方法吗?

很高兴得到一些回应!

谢谢你,最好的!

1 个答案:

答案 0 :(得分:0)

改用 PDO: https://www.php.net/manual/en/ref.pdo-odbc.php

这对我使用与 Filemaker 数据库的连接有效。