Conectar a SQL Server 2008 con PHP!!

Si, tuve peleándome un rato con el php y el sql server.
Cuando hice la conexion MySql – PHP sin problemas, lo malo fue cuando lo quise pasar a SQL.

Primero obvio en el codigo PHP hay que cambiar la función mysql_connect a mssql_connect.
Configurar correctamente el archivo php.ini ( Activando la extensión php_mssql.dll  y php_msql.dll )
También revisen su configuración de [SQL] en el mismo archivo… Guardamos

Abrimos el  «Administrador de Configuración de SQL Server»  y en «Configuración de  red de SQL Server / Protocolos de MSSQLSERVER»

Habilitan TCP/IP              [Configuramos:]  ../Propiedades/Direcciones IP / el ultimo parametro dice IPALL ponemos el puerto /*configuramos también el firewall*/

Canalizaciones con Nombre  <– Habilitarlo

Ahora en la carpeta donde están las Extensiones (ext)  de PHP, asegurarnos de que tenemos los archivos php_mssql.dll y php_msql.dll

Ex:

<?php

$conect = mssql_connect(«Nombre_servidor», «jok3r», «passwd«);
echo «La conexión a SQL SERVER se realizo con éxito«;

?>

Se hace la conexión a sql y se guarda en $conect (para otras cosas podría ser útil)

Luego usamos la funcion para conectar con Sql Server y damos los Parámetros [servidor al que se conecta (puede ser localhost), usuario y contraseña]

En caso que ni así conectara .. hay que ir a la carpeta de instalación de PHP y remplazar el archivo ntwdblib.dll y copiarlo igual en C:\Windows\System32.

26 comentarios en “Conectar a SQL Server 2008 con PHP!!

  1. hola realice los pasos mencionados pero a la hora de ejecutar el codigo de conexion
    me manda este mensaje

    Not Found

    The requested URL /APITUX/pruebaconexion.php was not found on this server.

    podrias ayudarme?

    1. pues ahí dice que el archivo no esta en esa ruta.. osea que si en tu servidor local tienes una carpeta llamada APITUX/ dentro debe estar tu archivo de conexión.
      y si es así, checa que tengas permisos de escritura correctos… (en windows generalmente no hay pex con eso) …

      1. OK en efecto, era la ruta del archivo que estaba llamando, hice el movimiento que indicas pero ahora me manda el siguiente mensaje:

        Fatal error: Call to undefined function mssql_connect() in C:\AppServ\www\APITUX\pruebaconexion.php on line 3

  2. HOLA he seguido todos los pasos y me manda este mensaje a la hora de ejecutar el

    codigo de conexion Not Found
    The requested URL /APITUX/pruebaconexion.php was not found on this server.

  3. QUE TAL AMIGO EXECELENTE APORTE !! POR UN MOMENTO CREI QUE NO SALDRIA YA ME EH LLEVADO UNA SEMANA CON ESTO Y NO ME HA SALIDO SEGUI TUS PASOS Y COMO QUE ME QUITO UN ERROR AHORA TENGO ESTE DETALLE Y NO TENGO IDEA COMO SOLUCIONARLO …

    Advertencia : mssql_connect () [ function.mssql-connect ]: message: Error de inicio de sesin del usuario ‘MICHELL’. (Severidad 14) en C: \ AppServ \ www \ Distribuido \ conexion.php on line 60

    Warning : mssql_connect () [ function.mssql-connect ]: No se puede conectar al servidor: 192.168.13.8 en C: \ AppServ \ www \ Distribuido \ conexion.php on line 60

    Warning : mssql_query (): suministra argumento no es un recurso SQL-Link válida MS en C: \ AppServ \ www \ Distribuido \ consultasql.php on line 160
    Error en odbc_exec

    ESPERO Y SEAS TAN AMABLE DE APOYARME ! TE AGRADECERE

    1. amm por lo que entiendo estas usando mssql_connect() en varios archivos en varias lineas…
      yo te recomiendo que crees un archivo para la conexión ejemplo:
      conexion.php <- ahí dentro haz la conexión a tu base de datos y ya solo haces un require en los archivos que necesiten la conexión…

  4. T-T por mas que he intentado, no se puede, algo no me esta saliendo bien, tengo w8pro 64b, appserv 2.5.9 he reemplazado los archivos dll en ext y system32, descomente en php.ini y reiniciado el servidor y me sale aun:

    Fatal error: Call to undefined function mssql_connect() in C:\AppServ\www\web\sql1.php on line 2

    algo me falta si me pueden apoyar

  5. Que onda.

    He intentado pero aún no lo consigo, ¿Qué puerto debo poner en IPALL? y estoy usando SQL Server 2008 con acceso mixto y uso la autentificación de Windows, y así entro al servidor SQL Server desde el Management, entonces sino tengo contraseña en mi Servidor, ¿sería así mi $conect = mssql_connect(«NombreEquipo\SQL_FOZ”, “sac”, ““); sin password? utilizo XAMPP 😐

    Gracias, espero puedas ayudarme, saludos.

    1. Generalmente el puerto es 1433, recuerda que hay que ‘abrir’ el puerto ene el firewall si estas haciendo tu conexión en tu red local, si por ejemplo te quieres conectar al sql server d tu vecino («es un decir»), también tendras que agregar la excepción en el modem de telmex por ejemplo permitiendo el puerto 1433… espero te sea de ayuda cualquier cosa deja un comentario !!

  6. como puedo hacer que se conecte sql server con php con xampp ya intente con appserver y no me funciono me sigue marcando que no me reconoce la cadena de conexion

    1. un ejemplo podría ser:

      $con = mssql_connect(«192.168.1.54», «sa», «contrasena»);

      //Y lo Validas

      if($con){
      echo «EXITO AL CONECTAR»;
      }else{
      echo «HUBO ALGÚN ERROR»;
      }

      // SI TE SIGUE MARCANDO ERROR y TODO ESTA CORRECTO VERIFICA QUE ESTËN LOS ARCHIVOS QUE MENCIONO EN EL POST y no deberías tener mayor complicación.

      1. OK ya me aparecio exito al conectar ahora como hago una consulta?
        me refiero a que ps como se hizo el cambio de mysql a mssql, entonces cada que cuando yo ponia eso asta en las consultas a hora se tiende que cambiar por mssql

  7. Ok yo investigue e investigu e investigue, si quieren evitarse de problemas utilicen appserver es el unico que se conecta con mssql sin problemas, actualizan la ntwdblib.dll a la versión 2000.80.194.0, la copian en system 32, en las extenciones de appserver ponen php_mssql.dll y quitan el comentario en el php.ini reinician y listo esta su conexion, creanme lo intente todo con easypho,xampp, etc. tarde 3 dias y nada puse appserver y en 10 min ya tenia todo por cierto instalen la versión 2.5.10 xq la 2.6 tiene errores

    1. Yo también perdí varios días peleando con Wamp y Xampp: con Appserver mssql aparece en phpinfo, usando las mismas dll y el mismo php.ini. Gracias!

  8. Muchas Gracias, al fin pude lograr que el PHP me reconociera la funcion mssql_connect. En verdad llevo varios dias leyendo y probando. Ahora tocara continuar con la conexion 😛

    Gracias tremendos tips.

    1. Has puesto el archivo ntwdblib.dll en C: también en C:\Windows y en C:\Windows\System32 (copy & paste) remplaza en caso de que te diga que ya están, y asegurarte que el ntwdblib.dll sea la versión 2000.80.194.0 : D ¡Suerte!

Deja un comentario