Недопустимое состояние курсора — pdo_odbc FreeTDS SQL Server

Мы выполняем совершенно несерьезный запрос и получаем следующую ошибку:

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

Решение

Оказывается, это был предыдущий запрос, который вызывал проблемы. Мы использовали:

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

выйти из одного ряда, но ничего не делать с этим после. Это оставляло курсор открытым, который затем выдавал ошибку, а затем в следующий раз выполнялся любой запрос. Для нас закрытие курсора до следующего запроса было способом продвижения вперед.

$pdo_statement->closeCursor();

Также стоит отметить, что используя fetchAll() (в предыдущем запросе) также является исправлением, так как при этом курсор не остается открытым.

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]