  | 
 XLVI. Firebird/InterBase Functions
     Firebird/InterBase is a relational database offering many ANSI SQL-92 features
     that runs on Linux, Windows, and a variety of Unix platforms. Firebird/InterBase
     offers excellent concurrency, high performance, and powerful language
     support for stored procedures and triggers. It has been used in production
     systems, under a variety of names since 1981. 
     
     InterBase is the name of the closed-source variant of this RDBMS that
     was developed by Borland/Inprise. More information about InterBase is 
     available at http://www.borland.com/interbase/.
     
     Firebird is a commercially independent project of C and C++ programmers,
     technical advisors and supporters developing and enhancing a multi-platform
     relational database management system based on the source code released by
     Inprise Corp (now known as Borland Software Corp) under the InterBase
     Public License v.1.0 on 25 July, 2000. More information about Firebird is 
     available at http://www.firebirdsql.org/.
     注: 
      This extension supports InterBase versions 5 and up and all versions of Firebird.
      Support for InterBase version 5.x will be dropped in PHP 5.
      
      This database uses a single quote (') character for escaping, a
      behavior similar to the Sybase database, add to your
      php.ini the following directive:
       
     
 
  To enable InterBase support configure PHP
  --with-interbase[=DIR], where DIR is the
  InterBase base install directory, which defaults to
  /usr/interbase.
  Note to Win32 Users: 
   In order to enable this module on a Windows environment, you must copy
   gds32.dll from the DLL folder of the PHP/Win32 binary
   package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32
   or C:\WINDOWS\SYSTEM32). In case you installed the InterBase database server on the
   same machine PHP is running on, you will have this DLL already. Therefore you don't
   need to copy gds32.dll from the DLL folder.
   
 这些函数的行为受 php.ini 的影响。 
  表格 1. InterBase configuration options | Name | Default | Changeable | Changelog | 
|---|
 | ibase.allow_persistent | "1" | PHP_INI_SYSTEM |   |  | ibase.max_persistent | "-1" | PHP_INI_SYSTEM |   |  | ibase.max_links | "-1" | PHP_INI_SYSTEM |   |  | ibase.default_db | NULL | PHP_INI_SYSTEM | Available since PHP 5.0.0. |  | ibase.default_user | NULL | PHP_INI_ALL |   |  | ibase.default_password | NULL | PHP_INI_ALL |   |  | ibase.default_charset | NULL | PHP_INI_ALL | Available since PHP 5.0.0. |  | ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |   |  | ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |   |  | ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |   |  
 
 有关 PHP_INI_* 常量进一步的细节与定义参见  附录 H。
  以下是该配置选项的简要解释。 
  - ibase.allow_persistent
    boolean
 
     Whether to allow
     persistent connections
     to Firebird/InterBase.
     - ibase.max_persistent
    integer
 
     The maximum number of persistent Firebird/InterBase connections per
     process. New connections created with ibase_pconnect() will be non-persistent
     if this number would be exceeded.
     - ibase.max_links
    integer
 
     The maximum number of Firebird/InterBase connections per process, including
     persistent connections.
     - ibase.default_db
    string
 
     The default database to connect to when ibase_[p]connect() is called
     without specifying a database name. If this value is set and SQL safe
     mode is enabled, no other connections than to this database will be allowed.
     - ibase.default_user
    string
 
     The user name to use when connecting to a database
     if no user name is specified.
     - ibase.default_password
    string
 
     The password to use when connecting to a database
     if no password is specified.
     - ibase.default_charset
    string
 
     The character set to use when connecting to a database
     if no character set is specified.
     - ibase.timestampformat
    string
 
     - ibase.dateformat
    string
 
     - ibase.timeformat
    string
 
    These directives are used to set the date and time formats
    that are used when returning dates and times from a result set,
    or when binding arguments to date and time parameters. 
     
  
 以下常量由本扩展模块定义,因此只有在本扩展模块被编译到
PHP 中,或者在运行时被动态加载后才有效。 
  The following constants can be passed to ibase_trans()
  to specify transaction behaviour.
   表格 2. Firebird/InterBase transaction flags | Constant | Description | 
|---|
 | IBASE_DEFAULT | 
       The default transaction settings are to be used. This default is
       determined by the client library, which defines it as
       IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT in most cases. |  | IBASE_READ | Starts a read-only transaction. |  | IBASE_WRITE | Starts a read-write transaction. |  | IBASE_CONSISTENCY | Starts a transaction with the isolation level set to
       'consistency', which means the transaction cannot read from tables
       that are being modified by other concurrent transactions. |  | IBASE_CONCURRENCY | Starts a transaction with the isolation level set to
       'concurrency' (or 'snapshot'), which means the transaction 
       has access to all tables, but cannot see changes that were committed
       by other transactions after the transaction was started. |  | IBASE_COMMITTED | Starts a transaction with the isolation level set to
       'read committed'. This flag should be combined with either
       IBASE_REC_VERSION or 
       IBASE_REC_NO_VERSION. This isolation level
       allows access to changes that were committed after the transaction
       was started. If IBASE_REC_NO_VERSION was
       specified, only the latest version of a row can be read. If 
       IBASE_REC_VERSION was specified, a row can
       even be read when a modification to it is pending in a concurrent
       transaction.
       |  | IBASE_WAIT | Indicated that a transaction should wait and retry when a
       conflict occurs. |  | IBASE_NOWAIT | Indicated that a transaction should fail immediately when a
       conflict occurs. |  
  
 
  The following constants can be passed to ibase_fetch_row(),
  ibase_fetch_assoc() or ibase_fetch_object()
  to specify fetch behaviour.
   表格 3. Firebird/InterBase fetch flags | Constant | Description | 
|---|
 | IBASE_FETCH_BLOBS | Also available as IBASE_TEXTfor backward
       compatibility. Causes BLOB contents to be fetched inline, instead of 
       being fetched as BLOB identifiers. |  | IBASE_FETCH_ARRAYS | Causes arrays to be fetched inline. Otherwise, array
       identifiers are returned. Array identifiers can only be used as
       arguments to INSERT operations, as no functions to handle array
       identifiers are currently available.
        |  | IBASE_UNIXTIME | Causes date and time fields not to be returned as strings,
       but as UNIX timestamps (the number of seconds since the epoch, which
       is 1-Jan-1970 0:00 UTC). Might be problematic if used with dates
       before 1970 on some systems.
        |  
  
 
  The following constants are used to pass requests and options to the service
  API functions (ibase_server_info(), ibase_db_info
  (), ibase_backup(), ibase_restore
  () and ibase_maintain_db()). Please refer to
  the Firebird/InterBase manuals for the meaning of these options.
   - IBASE_BKP_IGNORE_CHECKSUMS
 
       - IBASE_BKP_IGNORE_LIMBO
 
       - IBASE_BKP_METADATA_ONLY
 
       - IBASE_BKP_NO_GARBAGE_COLLECT
 
       - IBASE_BKP_OLD_DESCRIPTIONS
 
       - IBASE_BKP_NON_TRANSPORTABLE
 
       - IBASE_BKP_CONVERT
 
      Options to ibase_backup()()
       - IBASE_RES_DEACTIVATE_IDX
 
       - IBASE_RES_NO_SHADOW
 
       - IBASE_RES_NO_VALIDITY
 
       - IBASE_RES_ONE_AT_A_TIME
 
       - IBASE_RES_REPLACE
 
       - IBASE_RES_CREATE
 
       - IBASE_RES_USE_ALL_SPACE
 
      Options to ibase_restore()
       - IBASE_PRP_PAGE_BUFFERS
 
       - IBASE_PRP_SWEEP_INTERVAL
 
       - IBASE_PRP_SHUTDOWN_DB
 
       - IBASE_PRP_DENY_NEW_TRANSACTIONS
 
       - IBASE_PRP_DENY_NEW_ATTACHMENTS
 
       - IBASE_PRP_RESERVE_SPACE
 
       - IBASE_PRP_RES_USE_FULL
 
       - IBASE_PRP_RES
 
       - IBASE_PRP_WRITE_MODE
 
       - IBASE_PRP_WM_ASYNC
 
       - IBASE_PRP_WM_SYNC
 
       - IBASE_PRP_ACCESS_MODE
 
       - IBASE_PRP_AM_READONLY
 
       - IBASE_PRP_AM_READWRITE
 
       - IBASE_PRP_SET_SQL_DIALECT
 
       - IBASE_PRP_ACTIVATE
 
       - IBASE_PRP_DB_ONLINE
 
       - IBASE_RPR_CHECK_DB
 
       - IBASE_RPR_IGNORE_CHECKSUM
 
       - IBASE_RPR_KILL_SHADOWS
 
       - IBASE_RPR_MEND_DB
 
       - IBASE_RPR_VALIDATE_DB
 
       - IBASE_RPR_FULL
 
       - IBASE_RPR_SWEEP_DB
 
       Options to ibase_maintain_db()
       - IBASE_STS_DATA_PAGES
 
       - IBASE_STS_DB_LOG
 
       - IBASE_STS_HDR_PAGES
 
       - IBASE_STS_IDX_PAGES
 
       - IBASE_STS_SYS_RELATIONS
 
       Options to ibase_db_info()
       - IBASE_SVC_SERVER_VERSION
 
       - IBASE_SVC_IMPLEMENTATION
 
       - IBASE_SVC_GET_ENV
 
       - IBASE_SVC_GET_ENV_LOCK
 
       - IBASE_SVC_GET_ENV_MSG
 
       - IBASE_SVC_USER_DBPATH
 
       - IBASE_SVC_SVR_DB_INFO
 
       - IBASE_SVC_GET_USERS
 
       Options to ibase_server_info()
       
  
  
  |   |