Ubuntu 13.10'u FreeTDS ve ODBC (paket: php5-odbc) yüklü olarak çalıştırıyorum. Tds version = 8.0 kullanıyorum ama aynı zamanda tds version = 7.2 sürümünü kullandım.SELECT, unixOdbc - SQLSTATE [24000] kullanarak başarısız: Geçersiz imleç durumu
ben PDO kullanıyorum ve bu benim DSN geçerli: Bu sorgu başarısız neden
$dsn = sprintf('odbc:Driver=FreeTDS;Server=%s;Port=1433;Database=%s', DB_SQL_SERVERNAME, DB_DB_NAME);
Ben MSSQL örneğine bağlanmak ve işlemlerini kullanarak bazı INSERT/SELECT sorguları gerçekleştirmek, ancak ben çözemiyorum:
SELECT id
FROM tblColumns
WHERE siteID = 10063 AND
typeID = 1000 AND
extendedTypeID = 18 AND
label = 'RwThiFc85A'
vererek hatası:
SQLSTATE[24000]: Invalid cursor state: 0 [FreeTDS][SQL Server]Invalid cursor state (SQLExecute[0] at /build/buildd/php5-5.5.3+dfsg/ext/pdo_odbc/odbc_stmt.c:254)
ben befor benzer sorguları demet çalıştırıyorum e ve bunlar iyi bir şekilde gerçekleştirilir, örneğin:
SELECT id
FROM tblColumns
WHERE siteID = 10063 AND
typeID = 1000 AND
extendedTypeID = 3 AND
label = 'VwThiFc91B'
Bunun neden olduğu hakkında fikirleriniz var mı?
Ben dblib ve sqlsrv ile böyle bir sorun yoktu, ancak şimdi Unix'teyim ve sqlsrv kullanamazsınız ve dblib UTF-8 kodlamasıyla ilgili sorunlar nedeniyle ODBC'yi kullanmaya çalışıyorum.
Hazırla() ve execute() yerine sadece query() kullanıyorum. hiç fark yapar mı? – NeverEndingQueue
Ayrıca, "aynı anda iki farklı istek açık" ile ne demek istediğini anlamıyorum. Sorgulardan birini çalıştırıyorum ve bir sonraki sorguda koştuktan sonra 2'yi aynı anda çalıştırmak için bir yol yok. Sağ? – NeverEndingQueue
@NeverEndingQueue: İlk rs'nin kapalı olmadığından şüpheliyim, bu yüzden rs1.Close() düzeltmelidir. –