数据库管理系统 Sybase ASE 支持多个结果集,但 PHP 中的 Sybase 实现不支持。有一个关于此问题的错误报告,并且该报告中还提供了一个补丁 (https://bugs.php.net/bug.php?id=48675)。该补丁适用于 5.2.9 版,我已尝试将其添加到 5.3.10 版。源代码生成时没有警告或错误,并且测试新函数“sybase_next_result()”不会产生致命错误“调用未定义函数”。这表明该功能已实现,但未按预期工作。
配置是:
configure --disable-isapi --enable-debug-pack --without-mssql --without-pdo-mssql --without-pi3web --with-mcrypt=static --disable-static-analyze --enable-cli --with-sybase-ct=%SYBASE%\%SYBASE_OCS%
当有多个结果集显示“Sybase:意外结果,正在取消当前...”时,会在“sybase_query()”上显示一条通知。检索第一个结果集。即使没有补丁,也会返回此通知。
数据库中返回多个结果集的存储过程的数量是巨大的,'sybase_next_result()' 将是最好的解决方案。简而言之,我在 PHP 5.3.10 中为 Sybase 寻找与 'mssql_next_result()' (http://se2.php.net/manual/en/function.mssql-execute.php) 等效的版本。
值得注意的是,Sybase 实现的其他部分已经到位,并且似乎按预期工作。
我的测试环境是 WAMP 服务器(Windows 7、Apache 2.21、MySQL 5.5.20、PHP 5.3.10),Sybase ASE 是 15.7.0 版。
有没有人已经“解决”了这个问题?
关于//乔纳斯