Ich habe PHP noch nie zuvor verwendet und versuche, eine Verbindung zu einer SQL Server 2008-Instanz auf einem Windows-Computer herzustellen, auf dem IIS7 und PHP5.3 ausgeführt werden.
Ich habe SQLSRV30.EXE
von here in C:\Program Files (x86)\PHP\ext
heruntergeladen und installiert und dies zu C:\Program Files (x86)\PHP\php.ini
hinzugefügt:
extension=php_sqlsrv_53_nts.dll
Dann den gesamten Server neu gestartet. Ich bekomme immer noch schwerwiegende Fehler in meiner Protokolldatei und sagt:
PHP Fatal error: Call to undefined function mssql_connect()
Was muss ich tun, um eine Verbindung zu Microsoft SQL Server 2008 von PHP 5.3 unter IIS7/Windows Server 2008 herzustellen? Ich bin sicher, es ist etwas wirklich Dummes, das mir fehlt ...
FULL PHPINFO ->http://demo.mandibleweb.com/zapified/hello.php
phpinfo ():
PHP Version 5.3.10
System
Windows NT MWD001 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
Build Date
Feb 2 2012 20:10:58
Compiler
MSVC9 (Visual C++ 2008)
Architecture
x86
Configure Command
cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\Oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\Oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\Oracle\instantclient11\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet" "--with-mcrypt=static" "--disable-static-analyze"
Server API
CGI/FastCGI
Virtual Directory Support
disabled
Configuration File (php.ini) Path
C:\Windows
Loaded Configuration File
C:\Program Files (x86)\PHP\php.ini
Ich habe gerade versucht, diese Erweiterung auf meinem Dev-Server zu installieren.
Stellen Sie zunächst sicher, dass die Erweiterung richtig aktiviert ist. Ihre phpinfo()
-Ausgabe scheint nicht vollständig zu sein.
Wenn es tatsächlich installiert ist, sollte Ihre phpinfo()
einen Abschnitt haben, der wie folgt aussieht:
Wenn Sie diesen Abschnitt nicht in Ihrer phpinfo()
erhalten. Stellen Sie sicher, dass Sie die richtige Version verwenden. Es gibt sowohl nicht Thread-sichere als auch Thread-sichere Versionen der Erweiterung.
Überprüfen Sie abschließend Ihre extension_dir
-Einstellung. Standardmäßig ist dies Folgendes: extension_dir = "ext"
, meistens funktioniert es einwandfrei, aber wenn es nicht versucht: extension_dir = "C:\PHP\ext"
.
================================================== ===========================
EDIT gegebene neue Info:
Sie verwenden die falsche Funktion. mssql_connect()
ist Teil der Erweiterung Mssql . Sie verwenden die Erweiterung von Microsoft, also verwenden Sie sqlsrv_connect()
. Sehen Sie sich SQLSRV_Help.chm
für die API für den Microsoft-Treiber an, die in das Verzeichnis ext
extrahiert werden soll, wenn Sie die Erweiterung extrahieren.
php.ini muss wahrscheinlich lesen: extension=ext\php_sqlsrv_53_nts.dll
Oder verschieben Sie die Datei in dasselbe Verzeichnis wie die ausführbare PHP-Datei. Das habe ich diese Woche mit meiner PHP5-Installation gemacht, damit odbc_pdo funktioniert. : P
Außerdem sieht das nicht nach einer richtigen Ausgabe von phpinfo () aus. Wenn Sie eine Datei mit Inhalten erstellen<? phpinfo(); ?>
und besuchen Sie diese Seite, die HTML-Ausgabe sollte mehrere Abschnitte enthalten, darunter einen mit geladenen Modulen. (Bearbeitet, um hinzuzufügen: wie im Screenshot der oben akzeptierten Antwort gezeigt)
Ich verwende IIS und mysql (direkt heruntergeladen, ohne wamp oder xampp) Mein PHP wurde in c:\php .__ installiert. Ich erhielt den Fehler "Aufruf an undefined function mysql_connect ()" Für mich hat die Änderung von extension_dir funktioniert. Das habe ich getan. In der php.ini hatte ich ursprünglich diese Zeile
; Unter Windows: extension_dir = "ext"
Ich habe es geändert in:
; Unter Windows: extension_dir = "C:\php\ext"
Und es hat funktioniert. Natürlich habe ich die anderen Dinge auch gerne auskommentiert, wie zB in den anderen Anmerkungen.