   #PHP Manual Function Reference posix_uname pg_affected_rows

   PHP Manual
   Prev  Next
   ______________________________________________________________________

LXXXIII. PostgreSQL functions

Introduction

   PostgreSQL database is Open Source product and available without cost.
   Postgres, developed originally in the UC Berkeley Computer Science
   Department, pioneered many of the object-relational concepts now
   becoming available in some commercial databases. It provides
   SQL92/SQL99 language support, transactions, referential integrity,
   stored procedures and type extensibility. PostgreSQL is an open source
   descendant of this original Berkeley code.

Requirements

   To use PostgreSQL support, you need PostgreSQL 6.5 or later,
   PostgreSQL 7.0 or later to enable all PostgreSQL module features.
   PostgreSQL supports many character encoding including multibyte
   character encoding. The current version and more information about
   PostgreSQL is available at http://www.postgresql.org/ and
   http://techdocs.postgresql.org/.

Installation

   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.

Runtime Configuration

   The behaviour of these functions is affected by settings in php.ini.

   Table 1. PostgreSQL configuration options
   Name                        Default Changeable
   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
   pgsql.ignore_notice         "0"     PHP_INI_ALL
   pgsql.log_notice            "0"     PHP_INI_ALL
   For further details and definition of the PHP_INI_* constants see
   ini_set().

   Here's a short explanation of the configuration directives.

   pgsql.allow_persistent boolean
          Whether to allow persistent Postgres connections.

   pgsql.max_persistent integer
          The maximum number of persistent Postgres connections per
          process.

   pgsql.max_links integer
          The maximum number of Postgres connections per process,
          including persistent connections.

   pgsql.auto_reset_persistent integer
          Detect broken persistent links with pg_pconnect(). Needs a
          little overhead.

   pgsql.ignore_notice integer
          Whether or not to ignore PostgreSQL backend notices.

   pgsql.log_notice integer
          Whether or not to log PostgreSQL backends notice messages. The
          PHP directive pgsql.ignore_notice must be off in order to log
          notice messages.

How to use and hints

   Warning

   Using the PostgreSQL module with PHP 4.0.6 is not recommended due to a
   bug in the notice message handling code. Use 4.1.0 or later.

   Warning

   PostgreSQL function names will be changed in 4.2.0 release to confirm
   to current coding standards. Most of new names will have additional
   underscores, e.g. pg_lo_open(). Some functions are renamed to
   different name for consistency. e.g. pg_exec() to pg_query(). Older
   names can be used in 4.2.0 and a few releases from 4.2.0, but they may
   be deleted in the future.

   Table 2. Function names changed
   Old name          New name
   pg_cmdtuples()    pg_affected_rows()
   pg_errormessage() pg_last_error()
   pg_exec()         pg_query()
   pg_fieldname()    pg_field_name()
   pg_fieldsize()    pg_field_size()
   pg_fieldnum()     pg_field_num()
   pg_fieldprtlen()  pg_field_prtlen()
   pg_fieldisnull()  pg_field_is_null()
   pg_freeresult()   pg_free_result()
   pg_getlastoid()   pg_last_oid()
   pg_loreadall()    pg_lo_read_all()
   pg_locreate()     pg_lo_create()
   pg_lounlink()     pg_lo_unlink()
   pg_loopen()       pg_lo_open()
   pg_loclose()      pg_lo_close()
   pg_loread()       pg_lo_read()
   pg_lowrite()      pg_lo_write()
   pg_loimport()     pg_lo_import()
   pg_loexport()     pg_lo_export()
   pg_numrows()      pg_num_rows()
   pg_numfields()    pg_num_fields()
   pg_result()       pg_fetch_result()

   The old pg_connect()/pg_pconnect() syntax will be deprecated to
   support asynchronous connections in the future. Please use a
   connection string for pg_connect() and pg_pconnect().

   Not all functions are supported by all builds. It depends on your
   libpq (The PostgreSQL C Client interface) version and how libpq is
   compiled. If there is missing function, libpq does not support the
   feature required for the function.

   It is also important that you do not use an older libpq than the
   PostgreSQL Server to which you will be connecting. If you use libpq
   older than PostgreSQL Server expects, you may have problems.

   Since version 6.3 (03/02/1998) PostgreSQL uses unix domain sockets by
   default. TCP port will NOT be opened by default. A table is shown
   below describing these new connection possibilities. This socket will
   be found in /tmp/.s.PGSQL.5432. This option can be enabled with the
   '-i' flag to postmaster and it's meaning is: "listen on TCP/IP sockets
   as well as Unix domain sockets".

   Table 3. Postmaster and PHP
   Postmaster PHP Status
   postmaster & pg_connect("dbname=MyDbName"); OK
   postmaster -i & pg_connect("dbname=MyDbName"); OK
   postmaster & pg_connect("host=localhost dbname=MyDbName"); 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.php on line 20.
   postmaster -i & pg_connect("host=localhost dbname=MyDbName"); OK

   A connection to PostgreSQL server can be established with the
   following value pairs set in the command string: $conn =
   pg_connect("host=myHost port=myPort tty=myTTY options=myOptions
   dbname=myDB user=myUser password=myPassword ");

   The previous syntax of: $conn = pg_connect ("host", "port", "options",
   "tty", "dbname") has been deprecated.

   Environmental variables affect PostgreSQL server/client behavior. For
   example, PostgreSQL module will lookup PGHOST environment variable
   when the hostname is omitted in the connection string. Supported
   environment variables are different from version to version. Refer to
   PostgreSQL Programmer's Manual (libpq - Environment Variables) for
   details.

   Make sure you set environment variables for appropriate user. Use
   $_ENV or getenv() to check which environment variables are available
   to the current process.

   Example 1. Setting default parameters
PGHOST=pgsql.example.com
PGPORT=7890
PGDATABASE=web-system
PGUSER=web-user
PGPASSWORD=secret
PGDATESTYLE=ISO
PGTZ=JST
PGCLIENTENCODING=EUC-JP

export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCO
DING

Predefined Constants

   The constants below are defined by this extension, and will only be
   available when the extension has either been compiled into PHP or
   dynamically loaded at runtime.

   PGSQL_ASSOC (integer)

   PGSQL_NUM (integer)

   PGSQL_BOTH (integer)

   PGSQL_CONNECTION_BAD (integer)

   PGSQL_CONNECTION_OK (integer)

   PGSQL_SEEK_SET (integer)

   PGSQL_SEEK_CUR (integer)

   PGSQL_SEEK_END (integer)

   PGSQL_ESCAPE_STRING (integer)

   PGSQL_ESCAPE_BYTEA (integer)

   PGSQL_EMPTY_QUERY (integer)

   PGSQL_COMMAND_OK (integer)

   PGSQL_TUPLES_OK (integer)

   PGSQL_COPY_OUT (integer)

   PGSQL_COPY_IN (integer)

   PGSQL_BAD_RESPONSE (integer)

   PGSQL_NONFATAL_ERROR (integer)

   PGSQL_FATAL_ERROR (integer)

Examples

   Starting with PostgreSQL 7.1.0, you can store up to 1GB into a field
   of type text. In older versions, this was limited to the block size
   (default was 8KB, maximum was 32KB, defined at compile time)

   To use the large object (lo) interface, it is required to enclose
   large object functions within a transaction block. A transaction block
   starts with a SQL statement BEGIN and if the transaction was valid
   ends with COMMIT or END. If the transaction fails the transaction
   should be closed with ROLLBACK or ABORT.

   Example 2. Using Large Objects
   <?php
       $database = pg_connect("dbname=jacarta");
       pg_query($database, "begin");
       $oid = pg_lo_create($database);
       echo "$oid\n";
       $handle = pg_lo_open($database, $oid, "w");
       echo "$handle\n";
       pg_lo_write($handle, "large object data");
       pg_lo_close($handle);
       pg_query($database, "commit");
   ?>
   You should not close the connection to the PostgreSQL server before
   closing the large object.

   Table of Contents
   pg_affected_rows -- Returns number of affected records (tuples)
   pg_cancel_query --  Cancel asynchronous query
   pg_client_encoding --  Gets the client encoding
   pg_close -- Closes a PostgreSQL connection
   pg_connect -- Open a PostgreSQL connection
   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 -- Get the database name
   pg_delete --  Deletes 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 -- Fetches all rows from a result as an array
   pg_fetch_array -- Fetch a row as an array
   pg_fetch_assoc -- Fetch a row as an associative array
   pg_fetch_object -- Fetch a row as an object
   pg_fetch_result -- Returns values from a result resource
   pg_fetch_row -- Get a row as an enumerated array
   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 --  Returns the host name associated with the connection
   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 --  Reads an 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 -- Get the options associated with the connection
   pg_pconnect -- Open a persistent PostgreSQL connection
   pg_ping -- Ping database connection
   pg_port --  Return the port number associated with the connection
   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 --  Sends asynchronous query
   pg_set_client_encoding --  Set the client encoding
   pg_trace -- Enable tracing a PostgreSQL connection
   pg_tty --  Return the tty name associated with the connection
   pg_unescape_bytea --  Unescape binary for bytea type
   pg_untrace -- Disable tracing of a PostgreSQL connection
   pg_update --  Update table.
   ______________________________________________________________________

   Prev        Home             Next
   posix_uname  Up  pg_affected_rows
