Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.2K
Vistas
PDO sqlsrv: no se pudo encontrar el controlador

Estoy tratando de conectarme a un servidor SQL en PHP. Con XAMPP en mi máquina local, todo funciona bien. Pero ahora voy a llevar mi aplicación al servidor de producción.

En este servidor se encuentra instalado Microsoft IIS 6.1 y ejecutando PHP versión 7.0.7 . También instalé el controlador ODBC desde aquí . A continuación, elimino la siguiente línea en mi archivo php.ini:

 extension=php_sqlsrv_7_nts.dll extension=php_pdo_sqlsrv_7_nts.dll

Obtuve los archivos del sitio oficial de Microsoft .

¿Cuál es mi problema?

Desafortunadamente, después de reiniciar IIS. La función PDO arroja el error PDOException con el siguiente mensaje:

 could not find driver

Para la conexión estoy usando la siguiente función que funciona bastante bien en mi máquina local:

 try { $con = new PDO("sqlsrv:Server=" . SERVER . ";Database=" . DATABASE, USERNAME, PASSWORD); // set the PDO error mode to exception $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo "No connection: " . $e->getMessage(); exit; }

¿Qué más puedo hacer?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Aquí hay un proceso detallado si es útil para alguien. PHP Version - 7.4

  1. Descargue y extraiga los archivos .dll desde este enlace: https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15

  2. Pegue los archivos en C:\xampp\php\ext , su ruta podría ser diferente.

  3. en php.ini agregue esas dos líneas en la parte inferior o en la sección de extensión.

     extension=php_sqlsrv_74_ts_x64.dll extension=php_pdo_sqlsrv_74_ts_x64.dll
  4. Reinicie su servidor Xampp, le sugiero que reinicie su computadora y todo funcionará sin problemas.

Compruebe si SqlSRV está habilitado

Verifique usando phpinfo() o http://localhost/dashboard/phpinfo.php de esta manera:

Comprobación del controlador SQLSrv en la información de PHP

Espero que ayude a alguien.

over 4 years ago · Santiago Trujillo Denunciar

0

Después de encontrar el registro de errores en el servidor de Windows, resolví el error yo mismo.

Recibí este error en mi registro:

 [21-Apr-2017 07:12:14 UTC] PHP Warning: PHP Startup: Unable to load dynamic library '...\ext\php_pdo_sqlsrv_7_nts.dll' - %1 is not a valid Win32 application. in Unknown on line 0

Luego volví a descargar el controlador e instalé el controlador x64. Finalmente funciona sin ningún problema.

over 4 years ago · Santiago Trujillo Denunciar

0

Me tomó un tiempo resolver el error 'Sin controlador'. Seguí algunos pasos como se menciona aquí y encontré algunos otros que me ayudaron después de nuevos errores. Para futuras referencias:

  • Descargue los controladores más recientes de Microsoft (como dijo Julian Schmuckli).
  • Compruebe si su XAMPP es de 64 bits (!) Con Phpinfo() . Si tiene 32 bits, necesita controladores diferentes.
  • Agregue los controladores a su archivo Php.ini y guarde los dll en su carpeta php/ext (cuestión de saber tabatabaee yazdi).
  • Para la conexión, utilice este código:
 $dbh = new PDO ("sqlsrv:Server=$server;Database=$dbname",$username,$pw);

Si agrega un puerto, use:

 $server = "192.168.1.15, 51022";

Donde la IP (puede ser el nombre de host) es su servidor y 51022 su puerto.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda