Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ich erhalte Zeichenfolgendaten, richtige Abschneidefehler von PHP mit ODBC und eine Verbindung zu einer Microsoft SQL Server 2008R2-Instanz

Nach vielem Optimieren und Suchen und einer ganzen Reihe von Fehlern im Dunkeln entschied ich schließlich, dass dies ein ODBC-Treiberproblem ist.

Insbesondere habe ich einen von Microsoft heruntergeladenen Treiber verwendet, der angeblich für die Arbeit mit PHP und unixODBC unter RHEL/CentOS6 entwickelt wurde. Es ist in seiner eigenen README-Datei als „Microsoft ODBC-Treiber 11 für SQL Server“ bekannt und wird in einer Datei mit dem Namen msodbcsql-11.0.2270.0.tar.gz geliefert . (Diese Angaben dienen allen anderen, die dasselbe versuchen)

Aufgrund meiner Erfahrung tue ich das nicht diesen Treiber empfehlen.

Ich habe stattdessen die neueste "stabile" Version von FreeTDS heruntergeladen, kompiliert und installiert. Falls es Ihnen wichtig ist, die Version, die ich bekommen habe, ist 0.91 (die Download-Datei sagt das nicht, aber sie wird in ein Verzeichnis mit dieser Nummer entpackt). Dies hatte/hat seine eigenen kleineren Konfigurationsprobleme, scheint aber letztendlich viel besser zu funktionieren als der von Microsoft bereitgestellte Treiber. Ich weiß nicht, ob dies noch aktiv gepflegt wird, da die letzten Zeitstempel in der Distribution der 17. August 2011 waren.

Ich bin dumm, weil ich dachte, ich sollte den Microsoft-Treiber verwenden, um auf einen Microsoft-Datenbankserver zuzugreifen, und erwarten, dass er tatsächlich das tut, was er verspricht.