Cómo conectarse a PostgreSQL con PHP

GuíasBases de datosPHPPostgreSQLProgramacionSQL

Vamos a ver cómo te puedes conectar a PostgreSQL desde un script de PHP tanto con las funciones nativas de PostgreSQL como utilizando PDO (PHP Data Objects).

Cómo conectarse a PostgreSQL mediante PHP

PHP dispone de diversas funciones nativas que posibilitan la conexión con bases de datos PostgreSQL. Siempre que puedas, te recomendamos que te conectes utilizando PDO, algo que puedes ver en el siguiente apartado. Si no es posible, conéctate utilizando las funciones nativas de este apartado.

Para crear la conexión, utiliza esta instrucción PHP, reemplazando USUARIO por el nombre de usuario de la base de datos, CONTRASEÑA por la contraseña del usuario y BASE_DE_DATOS por el nombre de la base de datos:

$conexion = pg_connect("host=localhost dbname=BASE_DE_DATOS user=USUARIO password=CONTRASEÑA");

Si quieres realizar la conexión a un servidor remoto, reemplaza localhost por el nombre del servidor. Si el servidor se llamase servidor.miweb.com, tendrías que reemplazar localhost por servidor.miweb.com tal y como puedes ver en este ejemplo:

$conexion = pg_connect("host=localhost dbname=BASE_DE_DATOS user=USUARIO password=CONTRASEÑA");

 

Una vez hayas creado la conexión y seleccionada la base de datos, ya podrás ejecutar consultas SQL sobre la misma. Por ejemplo, vamos a seleccionar el nombre de todos los usuarios que hay almacenados en la tabla USUARIOS que son menores de 30 años.

$nombres = pg_query($conexion, "SELECT nombre FROM usuarios WHERE edad < 30");

 

Cómo conectarse a MySQL usando PDO

La librería PDO abstrae el acceso a la base datos y permite crear consultas que puedan ser usadas por diferentes tipos de bases de datos. Para conectarte utilizando esta librería sigue estos pasos:

Crea la conexión a la base de datos, reemplazando USUARIO por el nombre de usuario con acceso a la base de datos, CONTRASEÑA por la contraseña del usuario y BASE_DE_DATOS por el nombre de la base de datos:

$conexion_pdo = new PDO('mysql:host=localhost;dbname=BASE_DE_DATOS', 'USUARIO', 'CONTRASEÑA');

Para realizar conexión a un servidor remoto, que como ejemplo será servidor.miweb.com, tendrás que reemplazar localhost por el nombre del servidor:

$conexion_pdo = new PDO('mysql:host=servidor.miweb.com;dbname=BASE_DE_DATOS', 'USUARIO', 'CONTRASEÑA');

Ahora ya es posible ejecutar consultas SQL sobre la base de datos que has seleccionado. para las consultas utilizaremos el objeto $conexion_pdo, que contiene el enlace a la base de datos que acabamos de crear. Por ejemplo, para seleccionar el nombre de todos los usuarios que se apellidan moreno.

$resultados = $conexion_pdo->query("SELECT nombre FROM usuarios WHERE apellido='moreno'");

Enlaces de interés