|
La base de datos PostgreSQL es un producto Open Source y disponible sin costo. Postgres, desarrollado originalmente en el Deportamento de Ciencias de Computación de UC Berkeley, fue pionero en muchos de los conceptos de objetos y relacionales que ahora están apareciendo en algunas bases de datos comerciales. Provee soporte para lenguajes SQL92/SQL99, transacciones, integridad referencial, procedimientos almacenados y extensibilidad de tipos. PostgreSQL es un descendiente de código abierto de su código original de Berkeley.
Para hacer uso del soporte PostgreSQL, necesita PostgreSQL 6.5 o posterior, PostgreSQL 8.0 o posterior para habilitar todas las características del módulo. PostgreSQL soporta varias codificaciones de caracteres, incluyendo codificación de caracteres multibyte. Su versión actual, asi como más información sobre PostgreSQL se encuentra disponible en http://www.postgresql.org/ y la Documentación de PostgreSQL.
In order to enable PostgreSQL support, --with-pgsql[=DIR] is required when you compile PHP. DIR is the PostgreSQL base install directory, defaults to /usr/local/pgsql. If shared object module is available, PostgreSQL module may be loaded using extension directive in php.ini or dl() function.
El comportamiento de estas funciones está afectado por los valores definidos en php.ini.
Tabla 1. PostgreSQL configuration options
Name | Default | Changeable | Changelog |
---|---|---|---|
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM | |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM | |
pgsql.max_links | "-1" | PHP_INI_SYSTEM | |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Available since PHP 4.2.0. |
pgsql.ignore_notice | "0" | PHP_INI_ALL | Available since PHP 4.3.0. |
pgsql.log_notice | "0" | PHP_INI_ALL | Available since PHP 4.3.0. |
A continuación se presenta una corta explicación de las directivas de configuración.
Whether to allow persistent Postgres connections.
The maximum number of persistent Postgres connections per process.
The maximum number of Postgres connections per process, including persistent connections.
Detect broken persistent links with pg_pconnect(). Needs a little overhead.
Whether or not to ignore PostgreSQL backend notices.
Whether or not to log PostgreSQL backends notice messages. The PHP directive pgsql.ignore_notice must be off in order to log notice messages.
Aviso |
El uso del módulo PostgreSQL con PHP 4.0.6 no se recomienda debido a un fallo en el código de gestión de mensajes tipo noticia. Use la versión 4.1.0 o posterior. |
Aviso | ||||||||||||||||||||||||||||||||||||||||||||||
Los nombres de funciones PostgreSQL serán modificados en el lanzamiento 4.2.0 para adoptar los estándares de código actuales. La mayoría de nombres nuevos tendrán signos de subrayado adicionales, p.ej. pg_lo_open(). Algunas funciones son renombradas a nuevos nombres por razones de consistencia, p.ej. pg_exec() a pg_query(). Los nombres antiguos pueden ser usados en 4.2.0 y algunas versiones subsiguientes, pero pueden ser eliminados en el futuro. Tabla 2. Nombres de función modificados
La vieja sintaxis pg_connect()/pg_pconnect() será marcada como obsoleta para dar soporte a conexiones asincrónicas en el futuro. Por favor use una cadena de conexión para pg_connect() y pg_pconnect(). |
No todas las funciones son soportadas en todas las instalaciones. Depende de su versión de libpq (la interfaz C de Cliente PostrgeSQL) y de cómo fue compilado libpq. Si hace falta alguna función, libpq no soporta la característica requerida para la función.
También es importante que no use una versión de libpq más antigua que la del Servidor PostgreSQL al que se conectará. Si usa una versión de libpq más antigua que la que el Servidor PostgreSQL espera, puede tener problemas.
A partir de la versión 6.3 (03/02/1998) PostgreSQL usa sockets de dominio unix por defecto. El puerto TCP NO será abierto por defecto. A continuación se presenta una tabla que describe estas posibilidades de conexión nuevas. Este socket se encontrará en /tmp/.s.PGSQL.5432. Esta opción puede habilitarse con la bandera '-i' a postmaster y su significado es: "escuche en sockets TCP/IP asi como en sockets de dominio Unix".
Tabla 3. Postmaster y PHP
Postmaster | PHP | Status |
---|---|---|
postmaster & | pg_connect("dbname=NombreDeMiBD"); | OK |
postmaster -i & | pg_connect("dbname=NombreDeMiBD"); | OK |
postmaster & | pg_connect("host=localhost dbname=NombreDeMiBD"); | No fue posible conectarse con el servidor PostgreSQL: connectDB() falló: ¿Está corriendo postmaster y acepta conexiones TCP/IP (con -i) en 'localhost' en el puerto '5432'? en /ruta/hacia/archivo.php en la línea 20. |
postmaster -i & | pg_connect("host=localhost dbname=NombreDeMiBD"); | OK |
Puede establecerse una conexión con el servidor PostgreSQL con el siguiente juego de pares de valores en la cadena de comando: $con = pg_connect("host=miHost port=miPuerto tty=miTTY options=misOpciones dbname=miBD user=miUsuario password=miContrasenya ");
La sintaxis previa de: $conn = pg_connect ("host", "port", "options", "tty", "dbname") ha sido marcada como obsoleta.
Las variables de entorno afectan el comportamiente de servidor/cliente de PostgreSQL. Por ejemplo, el módulo PostgreSQL buscará la variable de entorno PGHOSN cuando el nombre de host sea omitido en la cadena de conexión. Las variables de entorno soportadas son diferentes entre versión y versión. Refiérase el Manual de Programador de PostgreSQL (libpq - Variables de Entorno) para más detalles.
Asegúrese de establecer las variables de entorno para el usuario apropiado. Use $_ENV o getenv() para chequear cuáles variables de entorno están disponibles en el proceso actual.
Nota: PostgreSQL convierte automáticamente todos los identificadores (p.ej. nombres de tablas/columnas) a valores en minúsculas. Para lograr que reconozca valores en mayúsculas, debe rodear siempre el identificador entre comillas.
Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.
Passed to pg_fetch_array(). Return an associative array of field names and values.
Passed to pg_fetch_array(). Return a numerically indexed array of field numbers and values.
Passed to pg_fetch_array(). Return an array of field values that is both numerically indexed (by field number) and associated (by field name).
Passed to pg_connect() to force the creation of a new connection, rather then re-using an existing identical connection.
Returned by pg_connection_status() indicating that the database connection is in an invalid state.
Returned by pg_connection_status() indicating that the database connection is in a valid state.
Passed to pg_lo_seek(). Seek operation is to begin from the start of the object.
Passed to pg_lo_seek(). Seek operation is to begin from the current position.
Passed to pg_lo_seek(). Seek operation is to begin from the end of the object.
Returned by pg_result_status(). The string sent to the server was empty.
Returned by pg_result_status(). Successful completion of a command returning no data.
Returned by pg_result_status(). Successful completion of a command returning data (such as a SELECT or SHOW).
Returned by pg_result_status(). Copy Out (from server) data transfer started.
Returned by pg_result_status(). Copy In (to server) data transfer started.
Returned by pg_result_status(). The server's response was not understood.
Returned by pg_result_status(). A nonfatal error (a notice or warning) occurred.
Returned by pg_result_status(). A fatal error occurred.
Returned by pg_transaction_status(). Connection is currently idle, not in a transaction.
Returned by pg_transaction_status(). A command is in progress on the connection. A query has been sent via the connection and not yet completed.
Returned by pg_transaction_status(). The connection is idle, in a transaction block.
Returned by pg_transaction_status(). The connection is idle, in a failed transaction block.
Returned by pg_transaction_status(). The connection is bad.
Passed to pg_result_error_field(). The severity; the field contents are ERROR, FATAL, or PANIC (in an error message), or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized translation of one of these. Always present.
Passed to pg_result_error_field(). The SQLSTATE code for the error. The SQLSTATE code identifies the type of error that has occurred; it can be used by front-end applications to perform specific operations (such as error handling) in response to a particular database error. This field is not localizable, and is always present.
Passed to pg_result_error_field(). The primary human-readable error message (typically one line). Always present.
Passed to pg_result_error_field(). Detail: an optional secondary error message carrying more detail about the problem. May run to multiple lines.
Passed to pg_result_error_field(). Hint: an optional suggestion what to do about the problem. This is intended to differ from detail in that it offers advice (potentially inappropriate) rather than hard facts. May run to multiple lines.
Passed to pg_result_error_field(). A string containing a decimal integer indicating an error cursor position as an index into the original statement string. The first character has index 1, and positions are measured in characters not bytes.
Passed to pg_result_error_field(). This is defined the same as the PG_DIAG_STATEMENT_POSITION field, but it is used when the cursor position refers to an internally generated command rather than the one submitted by the client. The PG_DIAG_INTERNAL_QUERY field will always appear when this field appears.
Passed to pg_result_error_field(). The text of a failed internally-generated command. This could be, for example, a SQL query issued by a PL/pgSQL function.
Passed to pg_result_error_field(). An indication of the context in which the error occurred. Presently this includes a call stack traceback of active procedural language functions and internally-generated queries. The trace is one entry per line, most recent first.
Passed to pg_result_error_field(). The file name of the PostgreSQL source-code location where the error was reported.
Passed to pg_result_error_field(). The line number of the PostgreSQL source-code location where the error was reported.
Passed to pg_result_error_field(). The name of the PostgreSQL source-code function reporting the error.
Passed to pg_set_error_verbosity(). Specified that returned messages include severity, primary text, and position only; this will normally fit on a single line.
Passed to pg_set_error_verbosity(). The default mode produces messages that include the above plus any detail, hint, or context fields (these may span multiple lines).
Passed to pg_set_error_verbosity(). The verbose mode includes all available fields.
Passed to pg_result_status(). Indicates that numerical result code is desired.
Passed to pg_result_status(). Indicates that textual result command tag is desired.
Passed to pg_convert(). Ignore default values in the table during conversion.
Passed to pg_convert(). Use SQL NULL in place of an empty string.
Passed to pg_convert(). Ignore conversion of NULL into SQL NOT NULL columns.
A partir de PostgreSQL 7.1.0, puede almacenar hasta 1GB en un campo de tipo texto. En versiones anteriores, éste se encontraba limitado al tamaño de bloque (por defecto 8KB, el máximo era 32KB, definido en tiempo de compilación)
Para usar la interfaz de objetos grandes (lo), es necesario ubicar las funciones de objetos grandes en el interior de un bloque de transacción. Un bloque de transacción comienza con una sentencia SQL BEGIN y, si la transacción fue válida, termina con COMMIT o END. Si la transacción falla, ésta debe ser cerrada con ROLLBACK o ABORT.
Hosting by: hurra.com
Generated: 2007-01-26 18:00:53