我已经在 SuSE Web 服务器上安装了 Oracle Instant Client,并尝试通过 unixODBC 使用 PHP 连接到 Oracle 数据库。
连接似乎工作正常,发出 odbc_connect 后,我收到“odbc link”类型的响应。发出 odbc_prepare 后,我收到“odbc result”类型的响应。问题是,当我尝试发出 odbc_execute 命令时,我收到以下两个错误之一:
Warning: odbc_execute(): SQL error: [unixODBC][Oracle][ODBC][Ora]Driver not capable., SQL state S1C00 in SQLExecute
或者浏览器错误:
Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error.
我也尝试在 odbc_connect 方法上指定 SQL_CUR_USE_ODBC,但是当我这样做时,脚本就会无限期挂起。
我想知道的是,我是否必须在 odbc.ini 或 odbcinst.ini 文件中为 DSN 指定一些选项?似乎没有太多关于可用选项或这些选项的作用的文档。
编辑
我确实通过 PDO 对象方法使连接正常工作(实际上没有改变任何东西,只是尝试使用 PDO 准备/执行方法)。但是,我仍然无法使用 odbc_prepare / odbc_execute 获得任何结果。这是我从“SELECT * FROM product_component_version”查询中获得的服务器信息:
[PRODUCT] => NLSRTL
[VERSION] => 10.2.0.4.0
[STATUS] => Production
[PRODUCT] => Oracle Database 10g Enterprise Edition
[VERSION] => 10.2.0.4.0
[STATUS] => 64bi
[PRODUCT] => PL/SQL
[VERSION] => 10.2.0.4.0
[STATUS] => Production
[PRODUCT] => TNS for Solaris:
[VERSION] => 10.2.0.4.0
[STATUS] => Production