我在Ubuntu服务器17.10与IBM数据库之间的连接上遇到了一个奇怪的问题。
我已经安装了unixodbc:
odbcinst -j
unixODBC 2.3.7
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /var/www/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
当我直接在isql上测试请求时,一切工作正常:
SQL> SELECT COUNT(*) FROM HMOFIC.DIADHEFP WHERE L5BLCD = '1' AND l5a0cd = '1' AND L5ARDT = (20180820-19000000)
+------------+
| 00001 |
+------------+
| 1538 |
+------------+
SQLRowCount returns -1
1 rows fetched
SQL>
但是当我尝试将PDO与php 7.1一起使用时,大多数请求都可以正常工作,但其他请求却不能...
上面的请求正在使用php中的pdo,但是这个请求不适用于PDO(但是与isql可以正常工作):
select bdx.dtefac dtfact, coalesce(cbfp.cdetatprep,'') etatprep, count(*) nbfact from (
select * from hmoexp.border where dtefac between 20180810 and 20180821 and a_imprimer = '1'
) bdx left outer join hmoexp.slcbfpfp cbfp on bdx.dtefac = dtfacture and bdx.nochariot = cbfp.nochariot and bdx.nobac = cbfp.nobac
group by rollup(bdx.dtefac, coalesce(cbfp.cdetatprep,'')) order by dtfact, coalesce(cbfp.cdetatprep,'') desc
没有错误消息,但是没有发送标头html,并且在IE上显示消息“对不起,我们无法到达此页面”。
在另一台装有php 5.5.9,Ubuntu 4.22和unixODBC 2.2.14的服务器上,所有请求都可以在php5中的PDO和具有完全相同的PHP代码的ISQL上正常工作。