【发布时间】:2012-04-18 07:32:12
【问题描述】:
数据库管理系统 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: Unexpected results, canceling current in...”时,'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 版。
有没有人“解决”了这个问题?
关于 //乔纳斯
【问题讨论】: