Conexion Postgres desde PHP

En esta ocasión un pequeño ejemplo de como conectar PHP a Postgres, y les daré un resumen de cada función utilizadas en esta entrada:

1.- pg_connect : realiza la conexión hacia Postgres a través de una cadena compuesta por las credenciales de la base de datos.

2.- pg_query : recibe dos parámetros, el primero debe ser la conexión que abrimos con «pg_connect», y el segundo una cadena compuesta por la consulta que queremos realizar a la base de datos.

3.- pg_fetch_assoc : esta función sirve para obtener los datos de una fila obtenidos de la consulta.

class Conexion {
  function conectar() {
    $conn = pg_connect("user=usuario password=clave host=direccion_ip port=puerto dbname=nombre_db");

    if (!$conn) {
      echo "Error, Problemas al conectar con el servidor";
      exit;
    }else{
      return $conn;
    }
  }
 
  function consulta($sql=null){
    $resultado = pg_query(Conexion::conectar(),$sql);
    $fila = array();
    
    #Para obtener todos los datos debemos iterar en un ciclo, ya que contiene un puntero interno.
    while($row = pg_fetch_assoc($resultado)) {
      $fila[] = $row;
    }
    return $fila;
  }
}

$respuesta = Conexion::consulta("SELECT * FROM tabla");

# También se puede crear una instancia de la clase y llamar a los métodos : 
# $conexion = new Conexion();

#Mostrando la respuesta de nuestra consulta
print_r($respuesta); 

#Opcional : echo var_dump($respuesta);

Bueno para realizar todo lo mencionado anteriormente deben tener instalada en su ambiente las librerías para que PHP trabaje con Postgres

Para obtener información del PHP instalado en su ambiente y librerías utilicen phpinfo();

En el caso de Linux Debian o versiones basadas pueden instalarla con el gestor de paquetes con:
«apt-get install php5-pgsql»

Y en el caso de windows deberán llevar a cabo la instalación de la siguiente DLL : libpq.dl

Para mayor información siempre visitar la documentación oficial : Instalación Postgres

Con esto marco mi regreso a la comunidad espero les guste y seguir aportando para ustedes.

También te podría gustar...

2 Respuestas

  1. Juan Carlos Estrada Nieto dice:

    Hola, muy buen aporte, estaba buscando algo así básico para hacer una aplicación sencilla, me sirvió y le agregué un par de cosas que ahora te comento. 1 – Cerrar la conexión después de cada consulta. 2 – Considera retornar algo que indique si la consulta fallo. 3 – Considera que responder cuando las consultas son de tipo insert, update o delete, ahora solo consideras las de tipo select, y por ello creas un array con los registros de la respuesta.

    class Conexion
    {

    public static function crearConexion()
    {

    $host = «localhost»;
    $puerto = «5432»;
    $usuario = «postgres»;
    $clave = «postgres»;
    $nombre_db = «ultron_espejo»;

    $conexion = pg_connect(» host=$host user=$usuario password=$clave port=$puerto dbname=$nombre_db «);

    if (!$conexion)
    {
    die («Error, Problemas al conectar con el servidor»);
    }
    else
    {
    return $conexion;
    }

    }

    public static function consulta($sql=»»)
    {
    $conexion = Conexion::crearConexion();
    $resultado = pg_query($conexion,$sql);//se ejecuta la consulta
    pg_close($conexion);//se cierra la conexión para que no quede idle

    $consulta_exitosa = $resultado ? 1 : 0;

    $filas = [];
    #Para obtener todos los datos debemos iterar en un ciclo, ya que contiene un puntero interno.
    while($row = pg_fetch_assoc($resultado))
    {
    $filas[] = $row;
    }

    //si no retornó filas es posible que haya fallado la consulta o sea de tipo update o delete
    //entonces solo se informa el éxito o fracaso de la ejecución de la consulta
    return count($filas) > 0 ? $filas : $consulta_exitosa;
    }

    }

Deja una respuesta

Tu dirección de correo electrónico no será publicada.