2014-10-16 59 views
1

我們正在運行一個完全冷淡查詢和越來越以下錯誤:遊標狀態無效 - PDO_ODBC freetds的SQL服務器

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

+0

你的代碼在哪裏? – Raptor 2014-10-16 10:26:35

+0

對不起@Raptor我沒有按照我的意願回答問題。我會說在這種情況下代碼是相對不相關的。 – 2014-10-16 10:31:01

回答

4

它發現它是前面的查詢導致問題。我們正在使用:

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

要走出單行但在此之後沒有做任何事情。這是留下游標打開,然後拋出錯誤,然後下次執行任何查詢。對於我們來說,在下一個查詢之前關閉光標是前進的方向。

$pdo_statement->closeCursor(); 

這也是值得注意的是,使用fetchAll()(在前面的查詢)也是一個修復,因爲這不會留下游標打開。

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