gpt4 book ai didi

php - 修补 PHP 5.3.10 以支持 sybase_next_result()

转载 作者:搜寻专家 更新时间:2023-10-31 21:41:38 25 4
gpt4 key购买 nike

数据库管理系统 Sybase ASE 支持多结果集,但是 Sybase 在 PHP 中的实现不支持。在这个问题上报告了一个错误,该报告中还提供了一个补丁 (https://bugs.php.net/bug.php?id=48675)。该补丁适用于 5.2.9 版,我已尝试将其添加到 5.3.10 版。源代码构建时没有警告或错误,并且测试新函数“sybase_next_result()”不会产生 fatal error “调用未定义函数”。这表明该功能已实现,但未按预期工作。

配置是:

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_query()”会出现一条通知,提示“Sybase:意外结果,正在取消当前...”。检索第一个结果集。即使没有补丁也会返回此通知。

数据库中返回多个结果集的存储过程数量巨大,“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 版本。

有没有人“解决”了这个问题?

关于//乔纳斯

最佳答案

更新:

一位同事给了我使用“OutputDebugString()”的说明 (http://msdn.microsoft.com/en-us/library/windows/desktop/aa363362(v=vs.85).aspx) 并捕获使用 DebugView (http://technet.microsoft.com/en-us/sysinternals/bb896647)。

从这里我可以说'sybase_next_result()'被调用但是 block

if (sybase_ptr->active_result_index) {
...
}

未运行。这可能是正确的(如我所见)。

retcode = ct_results(sybase_ptr->cmd, &restype);

始终将“retcode”设置为“CS_FAIL”。这可能是因为早

ZEND_FETCH_RESOURCE2(sybase_ptr, sybase_link *, sybase_link_index, id, "Sybase-Link", le_link, le_plink);

以“retcode”变为“CS_FAIL”的方式设置“sybase_ptr”。

关于php - 修补 PHP 5.3.10 以支持 sybase_next_result(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10204898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com