问题
使用 PHP
的 oci
系列函数,查询 Oracle
数据库的数据,没有任何结果返回,也没有任何报错,oci_error()
也获取不到错误,打印出 SQL
后在 Navicat
中执行可以正常获取结果。
SQL
语句类似(这是精简后的,实际的更复杂):
SELECT * FROM ITEM WHERE NAME = 'TEST';
分析问题的过程
使用删减大法,将
SQL
删减到上面那种,失败。再把
WHERE
条件也删掉,没问题了。WHERE
条件加回去,换掉NAME
用其他字段做筛选条件,也没问题突然怀疑难道
NAME
是关键字?加上双引号,仍旧失败!!!问题肯定出在
NAME
上,既然Navicat
中可以,PHP
中不行,一定是与代码运行的环境有关系,更换PHP
版本,失败更换
Apache
驱动PHP
的方式,才终于找到罪魁祸首Fastcgi
,更换为LoadModule
模式后一切正常。
问题点倒是找到了,根本原因却仍是不得而知,也许是 Apache
PHP
Oracle
等哪个软件的 bug
吧,只能修改字段名喽