with tntsearch postgres pgsql pdoexception not error could php database postgresql laravel syntax-error

php - tntsearch - pdoexception::( could not find driver laravel pgsql



Laravel: Error[PDOException]: no se pudo encontrar el controlador en PostgreSQL (15)

Asegúrese de configurar la clave ''default'' en app/config/database.php

Para postgres, esto sería ''default'' => ''postgres'',

Si recibe una [PDOException] could not find driver error del [PDOException] could not find driver , verifique si tiene instaladas las extensiones de PHP correctas. Necesita pdo_pgsql.so y pgsql.so instalados y habilitados. Las instrucciones sobre cómo hacer esto varían entre los sistemas operativos.

Para Windows, las extensiones pgsql deben pre-descargarse con la distribución oficial de PHP. Simplemente edite su php.ini y descomente las líneas extension=pdo_pgsql.so y extension=pgsql.so

Además, en php.ini , asegúrese de que extension_dir esté configurado en el directorio apropiado. Debe ser una carpeta llamada extensions o ext o similar dentro de su directorio de instalación de PHP.

Finalmente, copie libpq.dll de C:/wamp/bin/php/php5.*/ En C:/wamp/bin/apache*/bin y reinicie todos los servicios a través de la interfaz de WampServer.

Si aún obtiene la excepción, puede que necesite agregar el directorio postgres /bin a su PATH :

  1. Propiedades del sistema -> pestaña Avanzado -> variables de entorno
  2. En el grupo ''Variables del sistema'' en la mitad inferior de la ventana, desplácese y encuentre la entrada PATH .
  3. Selecciónelo y haga clic en Editar
  4. Al final de la entrada existente, ingrese la ruta completa a su directorio bin de postgres. La carpeta bin debe estar ubicada en la raíz de su directorio de instalación postgres.
  5. Reinicie cualquier comando de comando abierto, o para estar seguro, reinicie su computadora.

Con suerte, esto debería resolver cualquier problema. Para más información, ver:

Estoy tratando de conectarme con la base de datos PostgreSQL a través de Laravel para hacer una migración de artesano php, pero no parece estar dirigida ya que está leyendo el nombre de la base de datos de MySQL.

Aquí están los comandos de database.php:

''connections'' => array( ''sqlite'' => array( ''driver'' => ''sqlite'', ''database'' => __DIR__.''/../database/production.sqlite'', ''prefix'' => '''', ), ''mysql'' => array( ''driver'' => ''mysql'', ''host'' => ''localhost'', ''database'' => ''database'', ''username'' => ''root'', ''password'' => '''', ''charset'' => ''utf8'', ''collation'' => ''utf8_unicode_ci'', ''prefix'' => '''', ), ''pgsql'' => array( ''driver'' => ''pgsql'', ''host'' => ''localhost'', ''database'' => ''postgres'', ''username'' => ''postgres'', ''password'' => ''root'', ''charset'' => ''utf8'', ''prefix'' => '''', ''schema'' => ''public'', ), ''sqlsrv'' => array( ''driver'' => ''sqlsrv'', ''host'' => ''localhost'', ''database'' => ''database'', ''username'' => ''root'', ''password'' => '''', ''prefix'' => '''', ), ),

Si elimino las rutas de MySQL obtendré:

[InvalidArgumentException] Database [mysql] not configured. EDITAR: Al intentar migrar php artesanal, recibo una ''PDOException: no pude encontrar el controlador''. Estoy usando WAMP y estoy en Win8.1. Usando PostgreSQL como base de datos. EDITAR: He experimentado una serie de soluciones alternativas, pero todavía debo resolver esto. El archivo php.ini se comprobó en Apache, WAMP (desde la carpeta php) y PostgreSQL. El extension_dir es correcto, ya que es -> extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"

La extension=pdo_pgsql.dll y extension=pgsql.dll están extension=pgsql.dll .

Hice el truco PATH en ''Variables del sistema'' y reinicié. Ninguna posibilidad.

Gracias por la ayuda hasta ahora.

Estos son mis controladores php_pdo_driver.h & php_pdo.h de C:/Program Files (x86)/PostgreSQL/EnterpriseDB-ApachePHP/php/SDK/include/ext/pdo

Información de phpinfo:

Versión de PHP 5.5.12

Compilador MSVC11 (Visual C ++ 2012) Configure el comando cscript / nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "- without-pdo-mssql "" --without-pi3web "" --with-pdo-oci = C: / php-sdk / oracle / x64 / instantclient10 / sdk, shared "" --with-oci8 = C: / php -sdk / oracle / x64 / instantclient10 / sdk, shared "" --with-oci8-11g = C: / php-sdk / oracle / x64 / instantclient11 / sdk, shared "" --enable-object-out-dir = ../obj/ "" --enable-com-dotnet = shared "" --with-mcrypt = static "" --disable-static-analyze "" --with-pgo "


El uso de Laravel V 5.5.39 con Php 7.1.12 está funcionando bien, pero versiones posteriores (más recientes) de php causan el problema. Por lo tanto, cambie la versión Php y obtendrá la solución al 100% .


En mi caso, tenía dos versiones de PHP instaladas. Así que todo lo que tenía que hacer era usar

$ /opt/lampp/bin/php artisan serve lugar de

$ php artisan serve


Estaba en hosting compartido y allí tuve que habilitar todo el pdo


Esto funcionó para mí:

$ sudo apt-get install php-gd php-mysql


Esto funcionó para mí:

$ sudo apt-get -y install php5.6-pgsql $ sudo service apache2 restart

Estoy trabajando con 32bit Ubuntu 14


Me doy cuenta de que esta es una vieja pregunta, pero la encontré en una búsqueda en Google, así que voy a seguir adelante y responder por si alguien más se encuentra con esto. Estoy en una Mac y tuve el mismo problema, pero lo resolví usando HomeBrew . Una vez que lo tienes instalado, puedes simplemente ejecutar este comando:

brew install php56-pdo-pgsql

Y reemplace el 56 con la versión de PHP que esté utilizando sin el punto decimal.


Para PDOException: could not find driver para MySQL , y si se trata de un sistema operativo basado en Debian ,

sudo apt-get -y install php5-mysql


Para PHP 7 en Ubuntu también puedes hacer:

sudo apt-get install php7.0-pgsql

Entonces, ahora no puedes descomentar líneas en php.ini

UPD: Tengo el mismo error, entonces el problema no estaba en el controlador. Cambié mi database.ini , pero cada vez que vi un error. Y cambio la configuración de la base de datos en .env y desaparecen los errores.


Para aquellos que quieran usar Postgresql en OpenSuse (y co), intente lo siguiente:

zypper --no-refresh in php5-pgsql


Tuve el mismo problema. Esto es lo que funcionó para mí.

Hay 2 archivos php.ini:

  • C: / wamp / bin / apache / apache2.4.9 / bin
  • C: / wamp / bin / php / php5.5.12

NOTA: Esto está usando mi versión de PHP y Apache, cambie a lo que son los suyos.

El archivo php.ini ubicado en ambas carpetas es lo que necesita actualizar, las extensiones:

  • extension = php_pdo_pgsql.dll
  • extension = php_pgsql.dll

Esto es lo que necesita descomentar (eliminar el símbolo;)

Reinicie Wamp y el símbolo del sistema.

Espero que funcione para ti :).


Veo que estás usando Windows. No pude solucionar esto con la activación de cualquiera de las extensiones que vienen con mi Windows WAMP Server. Intenté PDO_ODBC y otros e incluso encontré Microsoft Official PDO_SQLSRV .

La solución para mí fue instalar los controladores PDO_SQLSRV desde un sitio web de terceros. Encontré los controladores a través de http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

Normalmente no utilizo archivos DLL de sitios web aleatorios, pero estaba desesperado y esto funcionó para mí. Esperando que pueda salvar a otros numerosas horas de frustración.


Viejo hilo lo sé, pero perdí un par de horas de mi vida con esto. También necesita establecer la información de DB en el archivo .env. No es necesario que especifique aquí el controlador porque se usa el valor predeterminado especificado en database.php (creo). Estaba luchando porque tenía DB_CONNECTION=mysql en el archivo .env y estaba usando pgsql.



sudo apt-get install php7.1-pgsql