2012-04-03 97 views
15

Nunca he usado php anteriormente y estoy tratando de conectarme a una instancia de SQL Server 2008 en una máquina con Windows que ejecuta IIS7 y PHP5.3.Error grave de PHP: llamada a la función no definida mssql_connect()

he descargado e instalado SQLSRV30.EXE de here en C:\Program Files (x86)\PHP\ext añaden a esta C:\Program Files (x86)\PHP\php.ini:

extension=php_sqlsrv_53_nts.dll 

luego se reinicia el servidor entero. Todavía recibo errores fatales en mi archivo de registro diciendo:

PHP Fatal error: Call to undefined function mssql_connect() 

¿Qué necesito hacer para conectarse a Microsoft SQL Server 2008 desde PHP 5.3 se ejecuta en IIS 7/Windows Server 2008? Estoy seguro de que es algo muy tonto que me falta ...

COMPLETO 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

Tuve una situación similar (sin bloque MySQL), y mi solución está aquí: http://stackoverflow.com/questions/5179535/fatal-error-call-to-undefined-function-mysql-connect-in-c -apache-htdocs-test –

Respuesta

30

Acabo de tratar de instalar esa extensión en mi servidor de desarrollo.

Primero, asegúrese de que la extensión esté habilitada correctamente. Su salida phpinfo() no parece completa.

si es de hecho instalado correctamente, su phpinfo() debe tener una sección que tiene este aspecto: enter image description here

Si usted no recibe esa sección en su phpinfo(). Asegúrese de estar utilizando la versión correcta. Hay versiones de la extensión que no son seguras para subprocesos y para subprocesos.

Finalmente, verifique su configuración extension_dir. Por defecto es esto: extension_dir = "ext", la mayor parte del tiempo funciona bien, pero si no lo intenta: extension_dir = "C:\PHP\ext".

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

EDITAR dado nueva información:

está utilizando la función equivocada . mssql_connect() es parte de la extensión Mssql. Está utilizando la extensión de Microsoft, así que use sqlsrv_connect(), para API para el controlador de Microsoft, mire SQLSRV_Help.chm que debe extraerse al directorio ext cuando extrajo la extensión.

+0

Lo sentimos, aquí está el completo [phpinfo()] (http: // demo.mandibleweb.com/zapified/hello.php), tengo la sección 'sqlsrv' – Greg

+0

Actualizada mi respuesta: D – F21

+0

Sí, estaba a punto de decir que no vi una sección mssql en el phpinfo. –

1

php.ini probablemente necesita para leer: extension=ext\php_sqlsrv_53_nts.dll

O mueva el archivo al mismo directorio que el ejecutable php. Esto es lo que hice en mi instalación de php5 esta semana para que funcione odbc_pdo. : P

Además, no se parece a la salida phpinfo() correcta. Si crea un archivo con contenido
<? phpinfo(); ?> y visita esa página, el resultado HTML debe mostrar varias secciones, incluida una con módulos cargados. (Editado para agregar: como se muestra en la captura de pantalla de la respuesta aceptada anteriormente)

+0

Lo sentimos, aquí está el completo [phpinfo()] (http://demo.mandibleweb.com/zapified/hello.php) – Greg

0

estoy usando IIS y MySQL (directamente descargado, sin WAMP o XAMPP) Mi php se ha instalado en c: \ php que estaba recibiendo el error de "llamada a mysql_connect función no definida()" Para mí el cambio de extension_dir funcionó. Esto es lo que hice. En el php.ini, Originalmente, tenía esta línea

; En las ventanas: extension_dir = "ext"

lo cambié a:

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

Y funcionó. Por supuesto, hice las otras cosas, como quitar el comentario de las extensiones dll, etc., como se explica en otros comentarios.

Cuestiones relacionadas