Para comenzar a trabajar con PDO y la base de datos Postgres (también conocida como PostgreSQL) en Windows es necesario habilitar la extensión de PDO Postgres, si no lo hacemos, aparecerá el siguiente error:
PHP Fatal error: Uncaught PDOException: could not find driver
Por ello es que vamos a ver cómo solucionar este problema en Windows con PHP.
Nota: si no tienes XAMPP mira aquí cómo se instala, y si no tienes PostgreSQL mira cómo se instala en este post.
Habilitar extensión en el archivo INI
Para habilitar la extensión simplemente hay que editar el archivo llamado php.ini que se encuentra en la ruta de XAMPP /php
Si instalaste XAMPP con las opciones por defecto el archivo se encuentra en C:\xampp\php\php.ini
En caso de que no lo encuentres, mira: Cómo localizar el archivo INI de PHP.
Una vez que localices el archivo busca la línea que dice:
;extension=pdo_pgsql
Si tiene un punto y coma al inicio es porque está comentada. Para habilitar la extensión de PostgreSQL PDO en PHP descomenta la línea de manera que quede así:
extension=pdo_pgsql
Como referencia aquí dejo una imagen de mi php.ini:
Por cierto, ahí también se ve que la extensión de SQLite está habilitada.
Ahora guarda los cambios del archivo y reinicia el servidor de Apache para que las extensiones sean recargadas.
Reiniciar servidor y cargar extensión
Para reiniciar Apache abre el panel de control de XAMPP como administrador (se encuentra en C:\xampp\xampp-control.exe
)
Cuando la ventana se abre, haz click en el botón Stop de Apache, espera a que se detenga y luego haz click en Start.
Conclusión
Ahora podrás consumir una base de datos de PostgreSQL desde PHP usando el driver PDO. Te invito a leer más sobre PHP y sobre PostgreSQL.