Conectar a postgreSQL usando PHP con PDO



Este artículo sobre conexión postgreSQL / PHP es similar al realizado sobre conectar con una base de datos desde PHP con MySql, la diferencia solo esta en la conexión, el resto es igual ...

Suscríbete a nuestra newsletter

Sin spam. Solo contenido útil para profesionales de bases de datos.



Os dejo el código para que lo veáis y probéis. Al final del artículo esta el código completo.

Lo primero que hacemos es preparar el array con los datos de conexión donde pondremos los datos de:
  • IP del servidor y puerto normalmente 5432
  • Base de datos
  • Usuario y contraseña


$config = [
	'dsn' => 'pgsql:host=127.0.0.1;port=5432;dbname=base_de_datos',
	'username' => 'root',
	'password' => 'PASSWORD_BBDD',
];

Lo siguiente es realizar la conexión a postreSQL y guardarla en una variable para utilizarla después y añadir los atributos que necesitemos, en este enlace os dejo los atributos que se pueden utilizar

$conn = new PDO( $config['dsn'], $config['username'], $config['password']);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Una vez tenemos la conexión preparamos la consulta, la ejecutamos y en la variable $data obtendremos los resultados

$stmt = $conn->prepare( "Select * from articulos limit 20");
$stmt->execute();
$data = $stmt->fetchAll( PDO::FETCH_ASSOC);
$count = $stmt->rowCount();
$stmt->closeCursor();

A la consulta podríamos pasarle parámetros de la a través de un array, por ejemplo que el post este enabled

$stmt = $conn->prepare( "Select * from posts where enabled = ? limit 10");
$stmt->execute( [1]);

Por ultimo y a modo de verificar que todo va bien escribimos por pantalla el resultado de la consulta y eliminamos la conexión

print_r ( $data);
$conn = null;

Os dejo también el código completo:

$config = [
	'dsn' => 'pgsql:host=127.0.0.1;port=5432;dbname=base_de_datos',
	'username' => 'root',
	'password' => 'PASSWORD_BBDD',
];

$conn = new PDO( $config['dsn'], $config['username'], $config['password']);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

# Una vez tenemos la conexi
$stmt = $conn->prepare( "Select * from articulos where enabled = ? limit 2");
$stmt->execute( [1]);
$data = $stmt->fetchAll( PDO::FETCH_ASSOC);
$count = $stmt->rowCount();
$stmt->closeCursor();

print_r ( $data);

$conn = null;



Y esto es todo amigos, feliz programming!
Saludos
Alex.