2012-04-03 11 views
15

Ich habe noch nie PHP verwendet und versuche mich mit einer SQL Server 2008-Instanz auf einem Windows-Rechner mit IIS7 und PHP5.3 zu verbinden.PHP Schwerwiegender Fehler: Aufruf zu undefinierter Funktion mssql_connect()

Ich habe heruntergeladen und installiert SQLSRV30.EXE von here in C:\Program Files (x86)\PHP\ext hat dieses Bild zu C:\Program Files (x86)\PHP\php.ini:

extension=php_sqlsrv_53_nts.dll 

Dann den gesamten Server neu gestartet. Ich bekomme immer noch schwerwiegende Fehler in meiner Protokolldatei zu sagen:

PHP Fatal error: Call to undefined function mssql_connect() 

Was muss ich tun, um Microsoft SQL Server 2008 von PHP 5.3 läuft auf IIS7/Windows Server 2008 zu verbinden? Ich bin sicher, dass es etwas wirklich dumm ist, dass ich vermisse ...

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 
+0

Ich hatte eine ähnliche Situation (kein MySQL-Block), und meine Lösung ist hier: http://StackOverflow.com/Questions/5179535/Fatal-Error-Call-to-undefined-Function-Mysql-Connect-in-C -apache-htdocs-test –

Antwort

30

Ich habe gerade versucht, diese Erweiterung auf meinem Dev-Server zu installieren.

Stellen Sie zuerst sicher, dass die Erweiterung korrekt aktiviert ist. Ihre phpinfo() Ausgabe scheint nicht vollständig zu sein.

Wenn es in der Tat richtig installiert ist, Ihre phpinfo() sollte einen Abschnitt hat, der wie folgt aussieht: enter image description here

Wenn Sie nicht bekommen, diesen Abschnitt in Ihrem phpinfo(). Stellen Sie sicher, dass Sie die richtige Version verwenden. Es gibt sowohl nicht threadsichere als auch threadsichere Versionen der Erweiterung.

Überprüfen Sie abschließend Ihre extension_dir Einstellung. Standardmäßig ist es das: extension_dir = "ext", für die meiste Zeit funktioniert es gut, aber wenn es nicht versucht: extension_dir = "C:\PHP\ext".

============================================== =============================

EDIT gegeben neue Info:

Sie verwenden die falsche Funktion . mssql_connect() ist Teil der Mssql Erweiterung. Sie verwenden die Microsoft-Erweiterung, verwenden Sie also sqlsrv_connect(), für die API für den Microsoft-Treiber, schauen Sie sich SQLSRV_Help.chm an, die in Ihr Verzeichnis ext extrahiert werden sollte, wenn Sie die Erweiterung extrahierten.

+0

Sorry, hier ist die vollständige [phpinfo()] (http: // demo.mandibleweb.com/zapified/hello.php), habe ich die 'sqlsrv'-Sektion – Greg

+0

Meine Antwort wurde aktualisiert: D – F21

+0

Ja, ich wollte gerade sagen, dass ich keine mssql-Sektion in der phpinfo gesehen habe. –

1

php.ini wahrscheinlich braucht zu lesen: extension=ext\php_sqlsrv_53_nts.dll

Oder verschieben Sie die Datei in das gleiche Verzeichnis wie die PHP-Programmdatei. Dies ist, was ich mit meiner PHP5-Installation diese Woche gemacht habe, damit odbc_pdo funktioniert. : P

Darüber hinaus sieht das nicht wie richtige phpinfo() -Ausgabe. Wenn Sie eine Datei mit dem Inhalt
<? phpinfo(); ?> erstellen und diese Seite besuchen, sollte die HTML-Ausgabe mehrere Abschnitte anzeigen, einschließlich eines mit geladenen Modulen. (Bearbeitet, um hinzuzufügen: wie im Screenshot der oben angenommenen Antwort gezeigt)

+0

Sorry, hier ist die vollständige [phpinfo()] (http://demo.mandibleweb.com/zapified/hello.php) – Greg

0

ich IIS und MySQL bin mit (direkt heruntergeladen, ohne wamp oder xampp) Mein PHP in C installiert wurde: \ php Ich war immer den Fehler „nennen zu undefinierten Funktion mysql_connect()“ Für mich ist die Änderung von extension_dir hat funktioniert. Das habe ich gemacht. In der php.ini, Ursprünglich hatte ich diese Zeile

; Unter Windows: extension_dir = "ext"

habe ich es zu:

; Auf Windows: extension_dir = "C: \ php \ ext"

Und es hat funktioniert. Natürlich habe ich die anderen Dinge auch gerne auskommentiert, die DLL-Erweiterungen etc, wie in anderen Bemerkungen erläutert.

Verwandte Themen