游标状态无效 - pdo_odbc FreeTDS SQL Server

时间:2014-10-16 10:24:21

标签: php sql-server freetds pdo-odbc

我们正在运行一个完全无关的查询,并收到以下错误:

PDOException : SQLSTATE[24000]: Invalid cursor state: 0 [FreeTDS][SQL Server]Invalid cursor state (SQLExecute[0] at /builddir/build/BUILD/php-5.5.13/ext/pdo_odbc/odbc_stmt.c:254)

从PHP我们使用pdo_odbc库通过FreeTDS连接到SQLServer 2008

1 个答案:

答案 0 :(得分:5)

它发现前面的查询导致了问题。我们正在使用:

$pdo_statement->fetch(\PDO::FETCH_ASSOC);

退出单行,但之后没有做任何事情。这会打开游标,然后在下次执行任何查询时抛出错误。对我们来说,在下一个查询之前关闭光标是前进的方向。

$pdo_statement->closeCursor();

还值得注意的是,使用fetchAll()(在前面的查询中)也是一个修复,因为这不会使游标保持打开状态。

$pdo_statement->fetchAll(\PDO::FETCH_ASSOC);