Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.2K
Views
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?

about 4 years ago · Santiago Trujillo
3 answers
Answer question

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.

about 4 years ago · Santiago Trujillo Report

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.

about 4 years ago · Santiago Trujillo Report

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.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!