2016-06-16 10 views
3

Ich habe eine Codeigniter 3 App, die eine Verbindung zu einer SQL Server 2008-Datenbank herstellt. Wir haben eine neue VM mit Windows Server 2012 R2 64bit, SQL Server Express 2012 und XAMPP mit PHP 5.6 eingerichtet.PHP PDO sqlsrv Undefinierte Klassenkonstante SQLSRV_ENCODING_UTF8

Wir zogen die App es, die MSODBC installiert und die pdo_sqlsrv Version 3.2 DLL in den Erweiterungsordner hinzugefügt und in der ini-Datei geladen, aber wenn wir die App wir haben diese Fehlermeldung gestartet:

Undefined class constant SQLSRV_ENCODING_UTF8 in pdo_sqlsrv_driver.php on line 144 

Ich habe die Dokumente überprüft und alles scheint richtig, also haben wir versucht, alles ohne Glück neu zu installieren. Was könnte möglicherweise das Problem sein?

+0

Haben Sie den neuesten PHP/PDO-Treiber? Diese Konstante ist in der Microsoft-Bibliothek definiert (nur Windows-basiertes PHP): https://msdn.microsoft.com/en-us/library/cc296183%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396 Für meinen Teil, löste ich dies durch die Verwendung von ODBC stattdessen: http://geekanddummy.com/codeignter-3-connecting-to-ms-sql-from-linux/ –

+0

Nach mehr Forschung in es behoben ich es durch Angabe eines Standard-TCP-Port in SQL Server-Konfigurationsmanager –

+0

Ziemlich irreführende Fehlermeldung, wie! –

Antwort

0

Sie haben wahrscheinlich den falschen PDO-Treiber in Ihrer PHP-Installation. Ich benutze PHP/CodeIgniter auf mehreren Windows-Servern und habe Probleme mit den falschen Treibern beim ersten Start der Dinge.

Da Sie auf PHP 5.6 sind, müssen Sie sicherstellen, dass die php_pdo_sqlsrv_56_ts.dll OR php_pdo_sqlsrv_56_nts.dll Treiber im Verzeichnis /ext/ PHP ist. Dann in Ihrem php.ini Datei, müssen Sie sicherstellen, dass diese beiden Erweiterungen sind unkommentiert:

extension = php_sqlsrv_56_nts.dll
extension = php_pdo_sqlsrv_56_nts.dll

Sobald die beiden unkommentiert sind Stellen Sie sicher, dass die anderen Verweise auf die SQL Server-Treiber auskommentiert sind. Wenn das nicht hilft, ist hier ein weiterer Artikel zu überprüfen: Xampp MS SQL server PHP 5.6.

Denken Sie nach dem Anpassen der php.ini-Datei daran, die Site über IIS neu zu starten.