ibase_query

Description

Parameters

link_identifier

An InterBase link identifier. If omitted, the last opened link is
assumed.

query

An InterBase query.

bind_args

Return Values

If the query raises an error, returns FALSE. If it is successful and
there is a (possibly empty) result set (such as with a SELECT query),
returns a result identifier. If the query was successful and there were
no results, returns TRUE.

Note:

In PHP 5.0.0 and up, this function will return the number of rows
affected by the query for INSERT, UPDATE and DELETE statements. In order
to retain backward compatibility, it will return TRUE for these
statements if the query succeeded without affecting any rows.

Errors/Exceptions

If you get some error like "arithmetic exception, numeric overflow, or
string truncation. Cannot transliterate character between character sets"
(this occurs when you try use some character with accents) when using this
and after ibase_query() you must set the character set
(i.e. ISO8859_1 or your current character set).

Changelog

Version

Description

5.3.1

On success the function now returns TRUE if there were no
affected rows, where it previously returned 0
(a zero followed by an empty space).

Two comments on interogating system tables in Interbase or Firebird; I hope it helps.

1. if you try to build a query string to extract data from a system table (that has the form "rdb$some_name"), you should divide the "rdb$some_name" table name in your query string using the string merge operator ".".
$query = "select rdb"."$"."relation_name as TABLE_NAME from rdb"."$"."relations where rdb"."$"."system_flag=0";

2. The second thing is related to the fact that you can later use (after the call to ibase_fetch_object) as field identifier the ALIAS used in the query for the "rdb$some_name" table.