LXXXI. Funciones de PostgreSQL

Postgres, desarrollado originalmente en el UC Berkeley Computer Science Department, ha sido pionero en muchos de los conceptos relacionales/orientados a objeto que ahora están empezando a estar disponibles en algunas bases de datos comperciales. Tiene soporte de lenguaje SQL92/SQL3, integridad transaccional, y extensibilidad de tipos. PostgreSQL es un descendiente de dominio público, más concretamente open source, del código original de Berkeley.

PostgreSQL se encuentra disponible sin coste alguno. La versión actual la tienes a tu disposición en www.PostgreSQL.org.

Desde la versión 6.3 (02/03/1998) PostgreSQL usa sockets tipo Unix. Abajo se da una tabla con las diferentes posibilidades. El socket se encuentra en el ficheero /tmp/.s.PGSQL.5432. Esta opción se controla mediante el flag '-i' del postmaster y cuando se incluye significa "escuchar sockets TCP/IP además de los de dominio Unix" ya que si no se le dice nada solo escucha sockets tipo Unix.

Tabla 1. Postmaster y PHP

PostmasterPHPEstado
postmaster &pg_connect("", "", "", "", "dbname");OK
postmaster -i &pg_connect("", "", "", "", "dbname");OK
postmaster &pg_connect("localhost", "", "", "", "dbname"); Unable to connect to PostgreSQL server: connectDB() failed: Is the postmaster running and accepting TCP/IP (with -i) connection at 'localhost' on port '5432'? in /path/to/file.php3 on line 20. (Imposible conectar al servidor PostgreSQL, la llamada connectDB() ha fallado: ¿Está funcionando el postmaster aceptando conextiones TCP/IP (con -i) en 'localhost' en el puerto '5432'? en /path/to/file.php3 en linea 20.
postmaster -i &pg_connect("localhost", "", "", "", "dbname");OK

Uno puede establecer una conexión con el siguiente comando:

Para usar el interface de objetos grandes (large object o lo), es necesario encapsularlo en un bloque de transacción. Un bloque de transacción empieza con un begin y si la transacción fue valida termina con commit y end. Si la transacción falla debe ser cerrada con abort y rollback.

Ejemplo 1. Usando Objetos Grandes (lo)

<?php
$database = pg_Connect ("", "", "", "", "jacarta");
pg_exec ($database, "begin");
    $oid = pg_locreate ($database);
    echo ("$oid\n");
    $handle = pg_loopen ($database, $oid, "w");
    echo ("$handle\n");
    pg_lowrite ($handle, "gaga");
    pg_loclose ($handle);
pg_exec ($database, "commit")
pg_exec ($database, "end")
?>

Tabla de contenidos
pg_affected_rows -- Returns number of affected records(tuples)
pg_cancel_query --  Cancel async query
pg_client_encoding --  Get the client encoding
pg_Close -- Cierra una conexión PostgreSQL
pg_Connect -- Abre una conexión
pg_connection_busy --  Get connection is busy or not
pg_connection_reset --  Reset connection (reconnect)
pg_connection_status --  Get connection status
pg_convert --  Convert associative array value into suitable for SQL statement.
pg_copy_from --  Insert records into a table from an array
pg_copy_to --  Copy a table to an array
pg_DBname -- Nombre de la base de datos
pg_delete --  Delete records.
pg_end_copy -- Sync with PostgreSQL backend
pg_escape_bytea --  Escape binary for bytea type
pg_escape_string --  Escape string for text/char type
pg_fetch_all -- Fetch a row as an array
pg_Fetch_Array -- obtiene una fila en la forma de un array
pg_fetch_assoc -- Fetch a row as an array
pg_Fetch_Object -- obtener una fila en forma de objeto
pg_fetch_result -- Returns values from a result resource
pg_Fetch_Row -- obtiene la fila como un array enumerado
pg_field_is_null -- Test if a field is NULL
pg_field_name -- Returns the name of a field
pg_field_num -- Returns the field number of the named field
pg_field_prtlen -- Returns the printed length
pg_field_size --  Returns the internal storage size of the named field
pg_field_type --  Returns the type name for the corresponding field number
pg_free_result -- Free result memory
pg_get_notify -- Ping database connection
pg_get_pid -- Ping database connection
pg_get_result --  Get asynchronous query result
pg_Host -- Devuelve el nombre del host
pg_insert --  Insert array into table.
pg_last_error -- Get the last error message string of a connection
pg_last_notice --  Returns the last notice message from PostgreSQL server
pg_last_oid -- Returns the last object's oid
pg_lo_close -- Close a large object
pg_lo_create -- Create a large object
pg_lo_export -- Export a large object to file
pg_lo_import -- Import a large object from file
pg_lo_open -- Open a large object
pg_lo_read_all --  Read a entire large object and send straight to browser
pg_lo_read -- Read a large object
pg_lo_seek --  Seeks position of large object
pg_lo_tell --  Returns current position of large object
pg_lo_unlink -- Delete a large object
pg_lo_write -- Write a large object
pg_meta_data --  Get meta data for table.
pg_num_fields -- Returns the number of fields
pg_num_rows -- Returns the number of rows
pg_Options -- Devuelve opciones
pg_pConnect --  Crea una conexión persistente con una base de datos
pg_ping -- Ping database connection
pg_Port -- Devuelve el número de puerto
pg_put_line -- Send a NULL-terminated string to PostgreSQL backend
pg_query -- Execute a query
pg_result_error --  Get error message associated with result
pg_result_seek -- Set internal row offset in result resource
pg_result_status --  Get status of query result
pg_select --  Select records.
pg_send_query --  Send asynchronous query
pg_set_client_encoding --  Set the client encoding
pg_trace -- Enable tracing a PostgreSQL connection
pg_tty -- Devuelve el nombre del tty
pg_unescape_bytea --  Escape binary for bytea type
pg_untrace -- Disable tracing of a PostgreSQL connection
pg_update --  Update table.