Thursday, December 04, 2025

PHP Firebird changes in 2025 : 5.0.2 up through 6.1.1-RC.2.

I fetched the release notes for FirebirdSQL/php-firebird and made a concise summary of the user-visible changes and upgrade impact for versions from PHP Firebird 5.0.2 up through 6.1.1-RC.2.


I retrieved the release entries for 5.0.2, 6.1.1-RC.0, 6.1.1-RC.1 and 6.1.1-RC.2 and distilled the highlights and upgrade impact into a short, actionable summary below.


Summary of changes (5.0.2 → 6.1.1-RC.2)


- PHP Firebird 5.0.2 (published 2025-04-24)

  - Implemented INT128 support; values converted to string in PHP (PHP has no native 128-bit integer).

  - Removed trailing whitespaces on CHAR data types.

  - Added Windows installation requirement notes.

  - Impact: INT128 columns will appear as strings — check code that expects numeric types.


- PHP Firebird 6.1.1-RC.0 (published 2025-11-05)

  - Added IBASE_LOCK_TIMEOUT transaction option.

  - Added support for Firebird 4/5 types: INT128, DECFLOAT, TIME WITH TIMEZONE, TIMESTAMP WITH TIMEZONE.

  - New INI options:

    - ibase.default_trans_params (e.g., IBASE_READ | IBASE_NOWAIT)

    - ibase.default_lock_timeout (seconds; used together with IBASE_LOCK_TIMEOUT)

  - Support for long metadata (long table/field names).

  - Introduced IBASE_VER constant.

  - Various optimizations and bug fixes.

  - Note: Firebird 4/5 features require fbclient 4/5 dynamic library available in PATH.

  - Impact: to use the new types/features, ensure fbclient is updated and on PATH; consider configuring the new INI options for default transaction behavior.


- PHP Firebird 6.1.1-RC.1 (published 2025-11-06)

  - New function: ibase_get_client_version().

  - Build/runtime change: no compile-time dependency on fb_get_master_interface() and fb_get_statement_interface(); the extension now checks for these interfaces dynamically in the fbclient library.

  - A number of smaller fixes.

  - Impact: improved compatibility with varying fbclient builds; you can query client version from PHP.


- PHP Firebird 6.1.1-RC.2 (published 2025-11-10)

  - New functions: ibase_get_client_major_version(), ibase_get_client_minor_version().

  - Addressed multiple issues (referenced as #22, #78, #88, #91, #92, #95, #96 in release notes).

  - Possible breaking changes called out:

    - ibase_close() now closes the connection immediately instead of decreasing a reference count (see issue #22). Impact: code relying on previous refcount-based behavior may see connections closed sooner.

    - Fetching TIME fields with the IBASE_UNIXTIME flag now returns time as a string instead of negative values. Impact: code expecting numeric/negative values should be updated to handle string results.

  - Impact: review uses of ibase_close() and any code relying on previous reference-count semantics; update time-handling code that uses IBASE_UNIXTIME.


Upgrade checklist / recommendations

- Test your application against the new release candidates before deploying to production — RC releases are marked prerelease and the maintainers asked for thorough testing.

- If you rely on Firebird 4/5 types (INT128, DECFLOAT, timezone-aware TIME/TIMESTAMP), make sure the corresponding fbclient 4/5 library is installed and found via PATH on your system.

- Audit code that:

  - Expects INT128 as numeric — now strings.

  - Uses ibase_close() expecting refcounted behavior — adapt to immediate close semantics.

  - Fetches TIME values with IBASE_UNIXTIME — expect strings now; update parsing logic.

- Consider setting or reviewing the new INI options:

  - ibase.default_trans_params

  - ibase.default_lock_timeout

- Use the new client-version functions (ibase_get_client_version(), ibase_get_client_major_version(), ibase_get_client_minor_version()) for runtime checks to adapt behavior based on client capabilities.

- Run full test-suite / integration tests focusing on transactions, lock timeouts, date/time handling, and any code interacting with long metadata names.



Here is a one-page compatibility guide you can share with your team listing code snippets to change (e.g., ibase_close migration notes, TIME parsing examples).

 

The Firebird Book — A Gift for Everyone



The Firebird Book, Second Edition is made publicly available via the IBPhoenix digital store. Everyone can download the complete edition free of charge — no strings attached.

If you'd like to support Helen’s legacy and the Firebird community, there is an optional pay‑what‑you‑like contribution. Funds will support the organization of the Helen Borrie Memorial Award, recognizing individuals with sustained contributions to the Firebird project.