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:
magic_quotes_sybase = On ?>
To enable InterBase support configure PHP
--with-interbase[=DIR], where DIR is the
InterBase base install directory, which defaults to
In order for this extension to work, there are
DLL files that must be available to the Windows
PATH. See the FAQ titled "How do I add my PHP directory to the PATH
on Windows" for information on how to do this. Although copying DLL
files from the PHP folder into the Windows system directory also works
(because the system directory is by default in the systems
PATH), it is not recommended.
This extension requires the following files to be in the
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 worry because
gds32.dll will already be in
The behaviour of these functions is affected by settings in
|ibase.default_db||NULL||PHP_INI_SYSTEM||Available since PHP 5.0.0.|
|ibase.default_charset||NULL||PHP_INI_ALL||Available since PHP 5.0.0.|
For further details and definitions of the PHP_INI_* constants, see the Appendix I,
Here's a short explanation of the configuration directives.
Whether to allow persistent connections to Firebird/InterBase.
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.
The maximum number of Firebird/InterBase connections per process, including persistent connections.
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.
The user name to use when connecting to a database if no user name is specified.
The password to use when connecting to a database if no password is specified.
The character set to use when connecting to a database if no character set is specified.
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.
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.
The following constants can be passed to ibase_trans() to specify transaction behaviour.
|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_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.|
|IBASE_FETCH_BLOBS||Also available as |
|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.
Table of Contents