Пример кода:
$db = 'localhost:C:\...path...\dbname.fdb';
$username = 'SYSDBA';
$password = 'masterkey';
// Подключение к БД
$dbhandle = ibase_connect($db, $username, $password) or die ("error in db connect");
$status = ($dbhandle != '');
if ($status) {
$sql = 'SELECT * FROM table_name';
// Выполняем запрос
$rc = ibase_query($dbhandle, $sql);
echo "rc: ".$rc."]<br><br>";
// Получаем результат построчно в виде объекта
while ($row = ibase_fetch_object($rc)) {
echo $row->FIELD_NAME."<br>";
}
// Освобождаем хэндл связанный с результатом запроса
ibase_free_result($rc);
// Освобождаем хэндл связанный с подключением
ibase_close($dbhandle);
}
Если в списке полей выборки присутствует поле типа BOOLEAN, то получаю предупреждение
Warning: ibase_fetch_object(): Incorrect values within SQLDA structure empty pointer to data at SQLVAR index 5 in D:...\test.php on line 33
и никаких данных... Собственно вопрос, как обратиться к BOOLEAN полю? В Менеджере DB запрос отрабатывается корректно.
Вы пытаетесь выбрать поле с типом BOOLEAN. Суть в том, что этот тип появился гораздо позднее, чем произошло отделение FireBird от Interbase. Как следствие этот тип имеет разные идентификаторы и разную структуру в IB и FB.
Для Interbase этот тип имеет код 590, занимает два байта и может принимать значения FALSE, TRUE
В Firebird тип имеет код 32764, занимает один байт и принимает значения FALSE, TRUE, UNKNOWN.
Расширение php_interbase.dll предназначено для работы с Interbase и, соответственно, ничего о типе 32764 не знает.
Варианты решения проблемы
php_pdo_firebird.dllphp_firebird.dll. Может кто-то занимался портированием php_interbase.dll под новые версии Firebirdphp_interbase.dll, но тогда отказаться от всего специфического для Firebird функционалаКак развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники