Subject PHP5/Firebird features
Author Ard Biesheuvel
These are some of the new Firebird features in PHP5.

Two new INI directives have been added:

- can be defined in php.ini or by ini_set()
- specifies the character set ibase_connect() will use if none is specified.

- can only be define in php.ini (or by php_admin_value in Apache)
- specifies the database ibase_connect() connects to if either
a) no database is specified, or
b) sql.safe_mode is enabled.

The default date & time formats have been changed to non-ambigous
ISO-conformant values. [eg. 2004-06-10 13:30:00].

Numeric timestamps can be bound to date/time parameters if their PHP
type is int.

ibase_pconnect() will no longer fail if the maximum number of persistent
connections is reached, but will create a non-persistent connection instead.

CREATE DATABASE is supported by ibase_query() if you pass IBASE_CREATE
as link argument. [eg. ibase_query(IBASE_CREATE, "CREATE DATABASE ...")]
In this case, the return value will be a link resource that can be used
in subsequent query()/prepare() calls. This is a change from RC2
behaviour, which allowed CREATE DATABASE if no default link was open at
the time it was executed.

EXECUTE PROCEDURE is now fully supported.

Binding PHP arrays to array fields is now fully supported.

ibase_[add|modify|delete]_user() have been modified to use the same kind
of service attachment resource used by ibase_backup(), ibase_restore(),
ibase_db_info() etc. instead of specifying the sysdba user/password in
each call. This means you will have to call ibase_service_attach()
before you can call ibase_add_user()

ibase_query()/ibase_execute() will return the number of affected rows
(if applicable to the statement type)

Other changes can be found in the Release Notes at