【问题标题】:Invalid cursor state - pdo_odbc FreeTDS SQL Server游标状态无效 - pdo_odbc FreeTDS SQL Server
【发布时间】:2014-12-11 16:16:27
【问题描述】:

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

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

【问题讨论】:

  • 你的代码在哪里?
  • 对不起@Raptor 我提交了这个问题,但没有按照我的预期回答。我会说代码在这种特定情况下相对无关紧要。

标签: php sql-server freetds pdo-odbc


【解决方案1】:

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

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

取出一行,但之后不做任何事情。这使游标保持打开状态,然后在下次执行任何查询时引发错误。对我们来说,在下一个查询之前关闭光标是前进的方向。

$pdo_statement->closeCursor();

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多