Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ricevo dati String, errori di troncamento corretti da PHP utilizzando ODBC e connettendomi a un'istanza di Microsoft SQL Server 2008R2

Dopo molte modifiche e ricerche e un sacco di risoluzione dei problemi improvvisati, ho finalmente deciso che si tratta di un problema con il driver ODBC.

In particolare, stavo usando un driver scaricato da Microsoft, presumibilmente progettato per funzionare con PHP e unixODBC su RHEL/CentOS6. È noto come "Driver 11 Microsoft ODBC per SQL Server" nel proprio file README e viene fornito in un file chiamato msodbcsql-11.0.2270.0.tar.gz . (Questi dettagli sono stati forniti a beneficio di chiunque altro tenti di fare la stessa cosa)

Alla luce della mia esperienza, non consiglia questo driver.

Ho invece scaricato, compilato e installato l'ultima versione "stabile" di FreeTDS. Se ti interessa, la versione che ho ottenuto è 0.91 (il file di download non lo dice, ma viene decompresso in una directory con questo numero). Questo ha avuto/ha i suoi problemi di configurazione minori, ma alla fine sembra funzionare molto meglio del driver fornito da Microsoft. Non so se questo viene ancora mantenuto attivamente, poiché i timestamp più recenti nella distribuzione erano il 17 agosto 2011.

Sono stupido, pensando che dovrei usare il driver Microsoft per accedere a un server di database Microsoft e aspettarmi che faccia effettivamente quello che dice che farà.