File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / pgsql / README
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:47:59 2012 UTC (12 years, 4 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_17p0, v5_3_10, HEAD
php

    1: ==== About This Module ===
    2: PostgreSQL module provides access to PostgreSQL server from 
    3: PHP script. This module uses PostgreSQL C client lib called libpq.
    4: It is important that you use libpq that is later than backend 
    5: (PostgreSQL Server) version. Otherwise, you may experience 
    6: strange problems. 
    7: 
    8: Please send e-mail to yohgaki@php.net if you have comments for 
    9: pgsql module. I appreciate your feedback.
   10: 
   11: ==== API Change ===
   12: Older PHP than 4.2.0, pg_loimport()/pg_loexport() connection 
   13: parameter as last parameter, not like other functions. From 4.2.0,
   14: connection parameter became 1st parameter. Old syntax is preserved, 
   15: but it will raise NOTICE error message.
   16: 
   17: pg_connect()/pg_pconnect() has obsolete multi parameter syntax.
   18: This syntax will be deleted in 4.3.0 or later.
   19: 
   20: Omitting connectin parameter is NOT recommended. Connection 
   21: parameter may be required for future PHP version. Specify connection
   22: always if you don't want to rewrite code when it is changed.
   23: 
   24: ==== Function Name Change ==== 
   25: Function names are going to be changed to confirm coding
   26: standard. MySQL module has been done this already. Function names will
   27: be changed as follows.
   28: 
   29: pg_errormessage -> pg_error_message
   30: pg_cmdtuples    -> pg_affected_rows
   31: pg_fieldnum     -> pg_field_num
   32: and so on. Except pg_cmdtuples, under scores '_'  will be added to 
   33: names. 
   34: 
   35: Older names will become aliases of new functions for backward
   36: compatibility.
   37: 
   38: Manual will be updated when this change is commited to CVS source.
   39: 
   40: ==== Configure Option Notes ====
   41: You cannot specify PostgreSQL source directly to build PostgreSQL
   42: module with specific version. You need to install PostgreSQL 
   43: somewhere in your system to build PHP with PostgreSQL support.
   44: 
   45: ==== Note For PostgreSQL 7.2 ====
   46: I've tested upto 7.2.2.
   47: 
   48: ==== TODO List ===
   49: Make pg_convert() smater. 
   50:  - Better regex
   51:  - User defiend type support
   52: Support async connection.
   53: 
   54: ==== Experimental Functions =====
   55: 
   56: WARNING: API/behavior may be changed without notice.
   57: 
   58: Async query can improve application performance
   59: *significantly*. Please test and report any failure to
   60: yohgaki@php.net 
   61: 
   62: There are some cases that async functions blocks process. Even if
   63: process was blocked, functions work as expected. (except it blocks
   64: process) These are cases that process is blocked. Refer to libpq
   65: manual for details. Followings are common cases that async functions
   66: are blocked.
   67: 
   68:  - If libpq is compile with USE_SSL, some async functions are 
   69:    blocked.
   70:  - If libpq under Win32 is *NOT* compiled with 
   71:    WIN32_NON_BLOCKING_CONNECTIONS, non-blocking connection will block. 
   72: 
   73: Async function may also block if you have not retrive result and 
   74: send or execute query. If there is result left on connection, 
   75: pg_send_query() will block until last query is completed.
   76: 
   77: Garbages are cleaned when resource is cleaned up. There is no need to
   78: clean up query result if it is not needed.
   79: 
   80: Please refer to libpq manual or source for details.
   81: These functions are *NOT* supposed to be documented, yet.
   82: API may be changed.
   83: 
   84: NOTE: These functions are added in PHP 4.2.0 unless they are mentioned.
   85: 
   86: -------------------------------------------------------------------
   87: bool pg_send_query(resource connection, string query) 
   88: 
   89: Sends async query to backend. Result may be retrieved with
   90: pg_get_result(). It does not accept multiple query, but it accepts
   91: multiple queries at once. Each result may be retrieved separately by
   92: pg_get_result().
   93: 
   94: --------------------------------------------------------------------
   95: bool pg_cancel_query(resource connection) 
   96: 
   97: Cancels currently executing async query already sent to PostgreSQL
   98: server. This function is useful when user request time consuming query
   99: to server. It cannot cancel query executed by pg_exec(), since
  100: pg_exec() is a blocking function.
  101: 
  102: --------------------------------------------------------------------
  103: resource pg_get_result(resource conn) 
  104: 
  105: Gets pgsql query result resource. Returned value can be fed to
  106: pg_result()/pg_fetch_*(). pg_get_result() may block if result is not
  107: ready to be retrived. Use pg_is_busy() to check result is ready to be
  108: retrieved or not. If multiple query is sent to backend, it may be
  109: retrieved one by one using pg_get_result(). If there is no result left
  110: in connection, it returns false.
  111: 
  112: --------------------------------------------------------------------
  113: bool pg_connection_busy(resource connection)
  114: 
  115: Returns connections is executing query or not. 
  116: 
  117: --------------------------------------------------------------------
  118: int pg_connection_status(resource connection)
  119: 
  120: Gets connection status. It returns PGSQL_CONNECTION_OK or
  121: PGSQL_CONNECTION_BAD.
  122: 
  123: --------------------------------------------------------------------
  124: bool pg_connection_reset(resource connection)
  125: 
  126: Resets communication port to Postgresql server using the same
  127: connection parameter. It's useful for error recovery.
  128: 
  129: --------------------------------------------------------------------
  130: string pg_result_error(resource result)
  131: 
  132: Get error message associated with result 
  133: 
  134: --------------------------------------------------------------------
  135: int pg_result_status(resource result)
  136: 
  137: Get status of query result
  138: 
  139: --------------------------------------------------------------------
  140: 
  141: 
  142: Copy functions
  143: 
  144: --------------------------------------------------------------------
  145: mixed pg_copy_to(int connection_id, string table_name,
  146:                   [, string delim [, string null_as]])
  147: 
  148: nt pg_copy_from(int connection_id, string table_name, array rows
  149:                     [, string delim [, string null_as]])
  150: 
  151: --------------------------------------------------------------------
  152: 
  153: Utility functions
  154: 
  155: --------------------------------------------------------------------
  156: string pg_escape_string(string data)
  157: Escape string or binary for SQL statemen (7.2 or later)
  158: 
  159: 
  160: string pg_escape_bytea(string data)
  161: Escape string or binary for SQL statement (7.2 or later)
  162: 
  163: --------------------------------------------------------------------
  164: 
  165: Large Object Functions
  166: 
  167: --------------------------------------------------------------------
  168: int pg_lo_tell(resource large_object)
  169: Returns current position of large object 
  170: 
  171: --------------------------------------------------------------------
  172: bool pg_lo_lseek(resource large_object, int offset[, int whence])
  173: Seeks position of large object
  174: 
  175: --------------------------------------------------------------------
  176: 
  177: Notice message function
  178: 
  179: --------------------------------------------------------------------
  180: 
  181: string pg_last_notice(resource connection)
  182: Returns the last notice set by the backend 
  183: 
  184: This function is fully implemed in only in current CVS version.
  185: PHP 4.3.0 supposed to included fully implemented version.
  186: 
  187: NOTE: Added in PHP 4.0.6, but there is bug in notice message handling
  188: in PHP 4.0.6. Do no use 4.0.6 with pgsql module!!
  189: 
  190: --------------------------------------------------------------------
  191: 
  192: Utility functions (for PHP 4.3.0)
  193: 
  194: --------------------------------------------------------------------
  195: array pg_metadata(resource db, string table)
  196:    Get metadata
  197: 
  198: --------------------------------------------------------------------
  199: array pg_convert(resource db, string table, array values)
  200:    Check and convert values for PostgreSQL SQL statement
  201: 
  202: --------------------------------------------------------------------
  203: bool pg_insert(resource db, string table, array values[, bool convert[, bool async]])
  204:    Insert values (filed=>value) to table 
  205: 
  206: --------------------------------------------------------------------
  207: bool pg_update(resource db, string table, array fields, array ids[, bool convert[, bool async]])
  208:    Update table using values (field=>value) and ids (id=>value) 
  209: 
  210: --------------------------------------------------------------------
  211: bool pg_delete(resource db, string table, array ids[, bool convert[, bool async]])
  212:    Delete records has ids (id=>value) 
  213: 
  214: --------------------------------------------------------------------
  215: array pg_select(resource db, string table, array ids[, bool convert])
  216:    Select records that has ids (id=>value) 
  217: 
  218: --------------------------------------------------------------------
  219: array pg_get_notify([resource db[, notify]])
  220:    Get notify message on the connection 
  221: 
  222: --------------------------------------------------------------------
  223: string pg_unescape_bytea(string bytea_data)
  224:    Unescape bytea field data 
  225: 
  226: --------------------------------------------------------------------
  227: bool pg_ping(resource db)
  228:    ping database connection and try to reset connection if it's
  229:    broken 
  230: 
  231: -------------------------------------------------------------------
  232: 
  233: Again, experimental functions are subject to be changed without 
  234: notice.
  235: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>