Solucionar “Undefined function mssql_connect()”

Seguramente a más de uno le ha pasado y le está pasando, por eso llegó a este humilde blog, me estoy refiriendo al Fatal error lanzado por php cuando se intenta realizar una conexión hacia una base de datos Microsoft SQL Server, el error es similar al siguiente:

Fatal error: Call to undefined function mssql_connect() in X:\ServerPath\www\connexion.php on line 12

Se puede presentar en servidores con las siguientes características:

Windows Server 2003 + IIS + SQL Server 2005 + php

Windows Server 2003 + Apache + SQL Server 2005 + php

Bueno, realmente ocurre casi independientemente del Sistema Operativo, ya que el error es causado por el php, al no poder cargar la extensión para el manejo de dicha función.

Causas:

Puede ser causado por mala configuración del archivo php.ini, así también por la librería ntwdblib.dll, puesto que la versión original, la 2000.2.8.0 de dicha librería tiene algún conflicto con las conexiones hacia SQL 2005, incluido SQL Express 2005 (no me pregunten por que xD) ver imagen:

http://img402.imageshack.us/img402/9013/ntwdblib2000280.png

Esta librería debe ser reemplazada por la versión 2000.80.194.0 para poder corregir el problema, como se ve a continuación:

Esta librería debe sobre escribir la que se encuentra en el directorio del php, si no sabes como encontrar dicho directorio, es muy fácil, solo debes dar clic en inicio, luego clic en ejecutar y escribir cmd, luego tecleas echo %path% y mostrará algo como lo siguiente, donde lo importante es ver la ruta del php, en mi caso la unidad D es en la que tengo el AppServ:

También debe copiarse el archivo ntwdblib.dll dentro del directorio de Windows, normalmente será: C:\Windows

Configuración de PHP.ini

Las líneas importantes para nuestro caso práctico son las líneas 470, 471 , 597 y 598.

La línea 470 y 471 respectivamente, muestran lo siguiente:

; Directory in which the loadable extensions (modules) reside.
extension_dir = “.;”


el contenido entre ” comillas, puede variar y en algunos casos contendrá algo como:

“c:\ubicacion_aplicacion\/php5/ext”

lo cual se debe corregir a:

“c:\ubicacion_aplicacion\php5\ext”

en mi caso:

Luego de hacer estas correcciones, se deben quitar los ; punto y coma de las líneas 597 y 598 o para ser más específico, donde se encuentre lo siguiente:

;extension=php_msql.dll
;extension=php_mssql.dll

Ahora, solo se debe reiniciar los servicios, si no sabes, para no hacer más largo este manual, solo reinicia el equipo.

Por último, dejo las descargas de los archivos de este manual.

Descargar ntwdblib.dll Descargar Todos los archivos (incluye este manual en formato docx)

Contraseña para descomprimir: www.fiestachapina.net

Un comentario para “Solucionar “Undefined function mssql_connect()””

Deja un comentario