sql >> Base de Datos >  >> RDS >> Sqlserver

PHP IIS7 MSSQL Llamada a función indefinida sqlsrv_connect

Acabo de tener este problema yo mismo. Finalmente lo arreglé, así que pensé en compartirlo.

El problema era que, aunque tenía instalada la dll sqlsrv (copiada en mi carpeta php/ext), y Lo agregué en mi php.ini, en IIS, estaba 'deshabilitado' .

Aquí hay algunas instrucciones paso a paso, en caso de que alguien tenga este mismo problema nuevamente. (O para futuras referencias para mí :))

  1. Descargue (e instale) los controladores de SQL Server (.dll)

    • Instálelos ejecutando el .exe y escribiendo la ruta a la carpeta de extensiones de php cuando le pregunte dónde descomprimirlos.
      • Para encontrar su directorio de extensión actual, ejecute (cmd.exe) php -i | more y busque la línea extension_dir . (Para mí fue en la cuarta pulsación de more ). Alternativamente, cree un archivo php simple que contenga solo <?php phpinfo(); ?> y ejecútelo en el navegador. Esto le dará la misma información, pero en un formato mucho más fácil de leer.
  2. Agrega la extensión a tu php.ini

    • Para encontrar el php.ini correcto, ejecute php -i | more de nuevo, buscando Loaded Configuration File , o verifique ese simple script php nuevamente (le recomiendo que lo haga, le ahorrará tiempo y esfuerzo). La ruta que encuentra allí es el archivo que necesita editar.
    • Agregue las siguientes líneas a su php.ini y guárdelo:

      [PHP_SQLSRV] extention=php_sqlsrv_56_nts.dll

  3. Habilite la extensión en el Administrador de IIS

    • En el menú de inicio, escriba IIS Manager y presione enter.
    • Haga clic en el nombre de su servidor en la barra lateral izquierda
    • Haga clic en PHP Manager
    • En PHP Extensions , haga clic en Enable or Disable an Extension .
    • Si su extensión no está Enabled , busca en Disabled para ello. Cuando lo encuentre, haga clic derecho sobre él y haga clic en Enable en el menú contextual que aparece.
  4. Prueba para asegurarte de que funcionó

    • Abre ese phpinfo() página que creó (lo hizo, ¿no es cierto?) y busque en Registered PHP Streams . Si ve sqlsrv en esa lista, ¡ya está!