问题
我最近将我的 Web 应用程序从 Windows Server 迁移到 Linux 服务器,在这样做的过程中,我不得不进行很多更改......其中之一是我与MSSQL服务器通信的方式。
我正在使用 Windows PDO_SQLSRV 驱动程序与数据库对话,但现在将 dblib 驱动程序与 Freetds 等一起使用。 除了多个记录集和PDOStatement::nextRowset()
之外,一切都可以正常工作。当我尝试执行此函数时,我得到:
PDOStatement::nextRowset((: SQLSTATE[IM001]:驱动程序不支持此功能:驱动程序不支持/somefile/中的多个行集
我试过什么
我已经在Google上搜索了此错误,虽然我能够找到潜在的解决方案(可以追溯到2006年(,但似乎这些解决方案都不可用。
我看了这个,但无法实施解决方案,因为它没有说它在哪里。
我的问题
如果还不清楚,我需要一种方法通过 Linux 上的 PHP 从 MSSQL 数据库返回多个记录集,而不会收到我当前收到的错误......这可能吗?
阅读此线程
它似乎在开发人员待办事项列表中:
这是可行的。本机 mssql/dblib 扩展确实支持这一点 特征。我只是没有时间为pdo_dblib编码。
弗兰克
如果你考虑用原生库编写部分脚本,[查看这里][2]
编辑:
事实证明,我链接到的thread
是旧的,从那时起该错误已得到修复。
解决方案是将PHP升级到较新的版本。
事实证明,此问题已在后来的 PHP 版本中修复。我不知道确切的是哪个版本,但我现在使用的是 PHP 版本 5.5.18,nextRowset()
它正在正常工作。