Sono in esecuzione Ubuntu 13.10 con FreeTDS e ODBC (pacchetto: php5-odbc) installati. Io uso tds version = 8.0, ma ho anche provato la versione tds = 7.2.Uno dei SELECT non funziona utilizzando unixOdbc - SQLSTATE [24000]: stato del cursore non valido
Sto usando DOP e questo è il mio DSN:
$dsn = sprintf('odbc:Driver=FreeTDS;Server=%s;Port=1433;Database=%s', DB_SQL_SERVERNAME, DB_DB_NAME);
mi collego al istanza MSSQL ed eseguire alcune INSERISCI/query SELECT utilizzando le transazioni, ma non riesco a capire perché questa query ha esito negativo:
SELECT id
FROM tblColumns
WHERE siteID = 10063 AND
typeID = 1000 AND
extendedTypeID = 18 AND
label = 'RwThiFc85A'
dando errore:
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)
sono in esecuzione mazzi di query similiar befor ee sono eseguiti bene, per esempio
SELECT id
FROM tblColumns
WHERE siteID = 10063 AND
typeID = 1000 AND
extendedTypeID = 3 AND
label = 'VwThiFc91B'
Avete idee perché succede?
non ho avuto un tale problemi con DBLIB e SQLSRV, ma ora io sono su Unix e non posso usare SQLSRV, e causa di problemi con DBLIB codifica UTF-8 Sto cercando di utilizzare ODBC.
Sto usando solo query() invece di prepare() ed execute(). Fa qualche differenza? – NeverEndingQueue
Anche io non capisco cosa intendi dicendo: "si aprono due richieste diverse allo stesso tempo". Eseguo una delle query e dopo che è stata eseguita c'è una query successiva, non c'è modo di eseguire 2 contemporaneamente o qualcosa del genere. Destra? – NeverEndingQueue
@NeverEndingQueue: Sospetto che il primo rs non sia chiuso, quindi rs1.Close() dovrebbe risolverlo. –