2012-05-17 18 views
21
<?php 

try { 
    $dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##'); 
    echo "PDO connection object created"; 
} 
catch(PDOException $e) 
{ 
     echo $e->getMessage(); 
} 

?> 

me sale el mensaje de error "No se pudo cargar el controlador de"¿Cómo habilito php para trabajar con postgresql?

+0

http://stackoverflow.com/a/7240866/705198 Cubre este problema en derivados de Debian Linux. – AndrewPK

Respuesta

25

Prueba esto:

Elimine la siguiente en php.ini quitando el ";"

;extension=php_pgsql.dll 

Utilice el siguiente código para conectarse a un servidor de base de datos PostgreSQL:

pg_connect("host=localhost dbname=dbname user=username password=password") 
    or die("Can't connect to database".pg_last_error()); 
+0

Todavía veo 'PHP Error fatal: llamada a la función indefinida pg_connect()', aunque * sé * que tengo lo ha descomentado Ideas? – IIllIIll

0

Necesitas isntall paquete pdo_pgsql

+2

¿Cómo instalo ese paquete en Windows? – Aaron

+1

Quizás 'pecl install pdo_pgsql'. No estoy seguro –

64

Es necesario instalar el módulo pgsql para php. en Debian/Ubuntu es algo como esto:

sudo apt-get install php5-pgsql 

O si se instala el paquete, necesita habilitar de módulo en php.ini

extension=php_pgsql.dll (windows) 
extension=php_pgsql.so (linux) 

Greatings.

+0

Hola, ¿sabes cómo lo instalaría en Windows? Lo siento, aún no tengo Ubuntu. – Aaron

+0

Depende. ¿Estás usando wamp o algo así? –

+1

intente habilitar el módulo primero, editando php.ini y buscar php_pgsql y eliminar el; en el comienzo de la línea. Entonces necesitas volver a cargar tu servicio. –

2

acaba de instalar el controlador de base de datos:

apt-get install php5-pgsql php5-mysql php5-sqlite ... and so on ...

y ser feliz!

+0

Y vuelva a cargar la configuración de PHP (vuelva a cargar apache/nginx, etc.) después de instalar nuevas extensiones – Maks3w

2

Instalé PHP en Windows IIS usando Windows Platform Installer (WPΙ). WPΙ crea una herramienta "Administrador PHP" en la consola "Administrador de Servicios de Internet Information Server (IIS)". Estoy configurando PHP usando esta herramienta.

en http://php.net/manual/en/pdo.installation.php dice:

DOP y todos los principales drivers trabajan con PHP como extensiones compartidas, y simplemente necesitan ser activados mediante la edición del archivo php.ini: extension = php_pdo.dll

así que activé la extensión usando PHP Manager y ahora PDO funciona bien

PHP manager simple agregó las siguientes dos líneas en mi php.ini, puede agregar las líneas a mano. Por supuesto, debe reiniciar el servidor web.

[PHP_PDO_PGSQL]
extensión = php_pdo_pgsql.dll

+0

Instalé PHP a través de WPI, y fue suficiente para agregar extension = php_pgsql.dll a C: \ Program Files \ PHP \ v7.1 \ php.ini al final de la sección [ExtensionList] –

1

tengo que añadir en httpd.conf esta línea (Windows):

LoadFile "C:/Program Files (x86)/PostgreSQL/8.3/bin/libpq.dll" 
+0

¿Dónde encontraría httpd.conf –

0

yo y muchos otros afeitado pasó demasiado tiempo en esto - esto necesita una mejora masiva. Después de pasar horas, finalmente copié php_pgsql.dll del directorio ext de php al directorio raíz de Apache24 (donde sea que lo instalé) y finalmente Apache pudo obtener los módulos php/pg y dlls cargados.

+0

? Gracias increíbles, si estuviera usando xammp, ¿lo pondría en la carpeta C: \ xampp? –

Cuestiones relacionadas