php - PDOStatement::nextRowset() 不适用于 dblib 和 MSSQL

标签 php sql-server linux pdo odbc

问题

我最近将我的 Web 应用程序从 Windows 服务器迁移到 Linux 服务器,为此,我不得不做出很多改变......其中之一就是我与 MSSQL 服务器通信的方式。

我之前使用 Windows PDO_SQLSRV 驱动程序与数据库对话,但现在我将 dblib 驱动程序与 Freetds 等一起使用。除了多个记录集和 PDOStatement::nextRowset() 之外,一切正常.当我尝试执行此功能时,我得到:

PDOStatement::nextRowset(): SQLSTATE[IM001]: Driver does not support this function: driver does not support multiple rowsets in /somefile/

我尝试过的

我在 Google 上搜索了这个错误,虽然我能够找到可能的解决方案(可追溯到 2006 年),但似乎这些解决方案都没有。

我看了this但无法实现该解决方案,因为它没有说明它在哪里。

我的问题

如果还不清楚,我需要一种在 Linux 上通过 PHP 从 MSSQL 数据库返回多个记录集的方法,而不会出现我当前收到的错误...这可能吗?

最佳答案

Read this thread

它似乎在 Developer Todo 列表中:

It Is doable. The native mssql/dblib extension does support that features. I just have'nt had the time to code it for pdo_dblib.

Frank

如果您考虑在 native 库中编写部分脚本,[检查此处][2]


编辑:

事实证明,我链接到的thread 是旧的,此后错误已得到修复。

解决方案是将 PHP 升级到更新的版本。

关于php - PDOStatement::nextRowset() 不适用于 dblib 和 MSSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27424573/

相关文章:

sql - "Must declare the scalar variable"执行存储过程时出错

sql-server - 错误 SSIS 任务 : The result binding name must be set to zero for full result set and XML results

linux - NAND 纠错能力(1 位 4 位 8 位)

linux - 如何将目录更改为存储在变量 bash 中的路径

PHP 表单发布空白值

php - 递归函数在 codeIgniter 中不起作用

php - 在 PostPersist、PostUpdate 事件中保留对象

php - mysql与php在表中添加一行

sql - 对于这个特定的数据库设计问题,您会使用哪种方法?

linux - 生成文件: executing a multiline function not working