【发布时间】:2014-01-02 21:16:08
【问题描述】:
我正在运行安装了 FreeTDS 和 ODBC(包:php5-odbc)的 Ubuntu 13.10。 我用tds version = 8.0,也试过tds version = 7.2。
我正在使用 PDO,这是我的 DSN:
$dsn = sprintf('odbc:Driver=FreeTDS;Server=%s;Port=1433;Database=%s', DB_SQL_SERVERNAME, DB_DB_NAME);
我连接到 MSSQL 实例并使用事务执行一些 INSERT/SELECT 查询,但是我不知道为什么这个查询失败:
SELECT id
FROM tblColumns
WHERE siteID = 10063 AND
typeID = 1000 AND
extendedTypeID = 18 AND
label = 'RwThiFc85A'
给出错误:
SQLSTATE[24000]:游标状态无效:0 [FreeTDS][SQL Server]无效 游标状态(SQLExecute[0] at /build/buildd/php5-5.5.3+dfsg/ext/pdo_odbc/odbc_stmt.c:254)
我之前运行过一堆类似的查询并且它们执行得很好,例如:
SELECT id
FROM tblColumns
WHERE siteID = 10063 AND
typeID = 1000 AND
extendedTypeID = 3 AND
label = 'VwThiFc91B'
你知道为什么会这样吗?
我在使用 dblib 和 sqlsrv 时没有遇到这样的问题,但是现在我在 Unix 上无法使用 sqlsrv,并且由于 dblib UTF-8 编码的问题,我正在尝试使用 ODBC。
【问题讨论】:
标签: php sql-server odbc freetds unixodbc