Heim > Artikel > Backend-Entwicklung > Was tun, wenn PHP keine Verbindung zu MSSQL herstellen kann?
Lösung für den Fehler von PHP, eine Verbindung zu mssql herzustellen: 1. Suchen Sie extension=php_mssql.dll in der Datei php.ini und entfernen Sie das vorangehende Semikolon. 2. Kopieren Sie die Datei php_mssql.dll nach „c:/windows/system32 /" Verzeichnis Weiter; 3. Starten Sie iis neu.
Die Betriebsumgebung dieses Artikels: Windows7-System, PHP5-Version, DELL G3-Computer
Was soll ich tun, wenn PHP keine Verbindung zu MSSQL herstellen kann?
Über die Lösung, dass PHP keine Verbindung zur MSSQL-Datenbank herstellen kann:
php-Datenbank-SQL-Server-Erweiterung SQLServer-Server
Ich habe heute ein Problem beim Zugriff auf die Daten von sqlserver2000 in der Plattformumgebung von php5+iis6+mysql5 erhalten, und das Ergebnis wurde beim Ausführen gefunden. Wenn PHP eine Verbindung zur Remote-MSSQL-Datenbank herstellt, lautet der Fehlercode wie folgt:
Warning: mssql_connect(): Unable to connect to server:
Wenn ich darüber nachdenke, gab es vorher kein Problem. Später habe ich im Internet gesucht und einen Artikel gefunden, nur um herauszufinden, dass der Server MSSQL installieren muss, um PHP zum Herstellen einer Verbindung zu MSSQL zu verwenden. Ursprünglich musste ich MSSQL nicht auf dem neuen Server verwenden, aber jetzt habe ich Ich habe keine andere Wahl, als es zu erweitern. Nach der Erweiterung von MSSQL wird es kein Problem geben.
Erweiterungsmethode:
1. Suchen Sie
in der Datei c:/windows/php.ini und entfernen Sie das Semikolon davor.
Suchen Sie
; extension_dir = „./“. Ändern Sie das Verzeichnis in das PHP-Bibliotheksverzeichnis, z. B.: extension_dir = "c:/php/ext"
2 Kopieren Sie die Datei php_mssql.dll in das Verzeichnis c:/windows/system32/
3 . Starten Sie iis neu.
Das Folgende ist ein Artikel, den ich gefunden habe.
php-Konfiguration:
Stellen Sie Folgendes in der php.ini-Datei ein und suchen Sie
;extension=php_mssql.dll. Entfernen Sie das Semikolon vor
Finden Sie extension_dir = d:/extension/
Es befindet sich möglicherweise in Ihrem PHP. ini Anstelle von d:/extension/
Ändern Sie den Pfad, in dem sich php_mssql.dll im Erweiterungsverzeichnis unter dem PHP-Installationsverzeichnis befindet, wenn Sie es nicht an einen anderen Ort verschoben haben (vorausgesetzt, Ihr PHP-Installationspfad ist d:/ php)
Ändern Sie es einfach in extension_dir=d:/php/extensions/
Dann starten Sie den Webserver neu
Das ist einfach, aber nach Abschluss dieser Einstellungen kann immer noch keine Verbindung hergestellt werden. Die Fehlermeldung lautet wie folgt :
MS SQL Server-Datenbankverbindungsfehler! Bitte überprüfen Sie, ob die Hostvariableneinstellungen der Datenbank korrekt sind!!!
Ich habe die Hostvariableneinstellungen immer wieder überprüft und es gab kein Problem mit diesen Einstellungen Habe den folgenden Punkt gefunden. Hinweise:
php.com资料: I am trying to connect to SQL Server 2000 from PHP I bumped to following warning: Warning: mssql_connect(): Unable to connect to server: SERVER/Portal ....... on line 5 on line 5 there is: $db_connect = mssql_connect('SERVER/Portal', 'sa', 'my_passwd'); I did the following 1.enabled php_mssql.dll extension in PHP.ini 2.every dll is in proper place(System32 or PHP folder),including ntwdblib.dll I search lots of profile throught web ,but no one give me proper answer to resolve it. after a few hour ,I found the problem was caused by ntwdblib.dll ,which version is 7.00.839 ,when I replaced old ntwdblib.dll with the new ntwdblib.dll ,which version is 8.00.194 ,all problem are solved. We had some, read A LOT, of problems with MSSQL under Windows 2003. We had 2 the same windows, php, php-ini, everything machines but only one could connect. Unable to connect was the error message. Finnaly we checked the version of ntwdblib.dll and the one distributed with PHP was 7.00.... and the version of the one on the SQL Server install was 8.00.... so we copied this one in the php and apache dir and it worked.
Das Problem wurde auf diese Weise gefunden. Das Problem war, dass die Hauptfunktion von ntwdblib.dll darin besteht, SQL-Server-Verbindungsdienste bereitzustellen.
Die von mir verwendete PHP-Version ist 5.25. Im Windows/system32/ des Servers, auf dem sie installiert ist, habe ich festgestellt, dass die Version der Datei ntwdblib.dll 2000.2.8.0 ist, da diese Version SQL Server 7.0 unterstützt PHP überschreibt alle Dateien unter DLLs im Systemverzeichnis
. Wenn ich es also zum Herstellen einer Verbindung mit SQL Server 2000 verwende, kann ich natürlich keine Verbindung herstellen.
Später fand ich heraus, dass die Version von ntwdblib.dll 2000.80.2039.0 auf einem Server war, auf dem SQL Server 2000 normal installiert war, um die vorherige Version zu überschreiben.
Ergänzung: Wenn der Datenbankname mit einer Zahl beginnt, wird auch angezeigt, dass er nicht geöffnet werden kann. Schließen Sie den Namen der Datenbank beispielsweise in eckige Klammern ein Umgeschrieben als [123bbs], wird es nicht funktionieren. Darüber hinaus tritt diese Situation auch auf, wenn Ihr Datenbankname mit den reservierten Wörtern in SQL Server in Konflikt steht.
Endlich wurde das Problem, dass PHP keine korrekte Verbindung zum SQL Server 2000 herstellen konnte, endlich gelöst. Obwohl es mehr als einen halben Tag gedauert hat, war die Ernte immer noch großartig. Wenn Sie es jetzt veröffentlichen, werden auch Brüder, die auf das gleiche Problem stoßen, gerettet einige Umwege machen.
Wenn Ihr MSSQL-Zielcomputer mit einer Firewall ausgestattet ist, öffnen Sie bitte Port 1433, insbesondere für Windows XP-Systeme!
Nachdem ich die obigen Informationen gelesen hatte, bat ich meinen Freund, der sqlserver2000 installiert hatte, mir die Datei „ntwdblib.dll“ zu senden. Mein lokaler Test war erfolgreich, aber als ich sie auf den Server hochlud, war das Ergebnis, dass info() dies nicht tat habe die MSSQL-Erweiterung. Warum fehlte die bereits geladene Datei? Beim Vergleich der php.ini-Datei mit der lokalen gibt es im Grunde keinen Unterschied, aber sie kann nicht erweitert werden, und lokal ist alles normal.
Schließlich stellte sich heraus, dass das Problem immer noch bei der Version von „ntwdblib.dll“ lag und ich fand eine höhere Version von „ntwdblib.dll“, um diese zu ersetzen.
Empfohlenes Lernen: „
PHP-Video-TutorialDas obige ist der detaillierte Inhalt vonWas tun, wenn PHP keine Verbindung zu MSSQL herstellen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!