我们正在运行一个完全无关紧要的查询并收到以下错误:
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
最佳答案
事实证明是前面的查询导致了问题。我们正在使用:
$pdo_statement->fetch(\PDO::FETCH_ASSOC);
取出一行,但之后不做任何事情。这使游标保持打开状态,然后在下次执行任何查询时抛出错误。对我们来说,在下一个查询之前关闭游标是前进的方向。
$pdo_statement->closeCursor();
还值得注意的是,使用 fetchAll()
(在前面的查询中)也是一种修复方法,因为这不会使游标保持打开状态。
$pdo_statement->fetchAll(\PDO::FETCH_ASSOC);
关于php - 无效的游标状态 - pdo_odbc FreeTDS SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26401996/