Доступ к СУБД Firebird из PHP. Делаем отображение информации на планшет из корпоративной БД.

Конечно Firebird это очень нетипичная база данных для веба, но когда стоит задача дать людям возможность оперативно у себя на телефоне или планшете видеть информацию из корпоративной СУБД, которая как раз на Firebird, то написать несколько несложных php-скриптов и поставить локальный веб-сервер куда проще, чем создавать отдельное приложение под android и iOS.

Для того чтобы заставить php обращаться к Firebird или Interbase серверу в расширениях php (PHP Extensions) нам понадобится php_interbase модуль (в моем случае php_interbase.dll

Само же общение с сервером Firebird отличается от MySQL лишь особенностями языка запросов, а в php разница практически отсутствует. Тестовый файл работы с БД может выглядеть так:

$database = '127.0.0.1:TEST';
$user = 'SYSDBA';
$password = 'masterkey';
$db = ibase_connect($database, $user, $password);
if ($db!=true) echo "no connect";

$result = ibase_query('select count(*) from "RDB$RELATIONS" where "RDB$SYSTEM_FLAG"=0');
$row = ibase_fetch_row($result);
echo 'Пользовательских таблиц: '.$row[0];

В результате обращения к этому файлу в браузере мы увидим результат запроса, показывающий количество пользовательских таблиц в базе.

При этом важно чтобы и сам файл php и база данных была в одной кодировке, например оба в windows-1251. Но зачастую в вебе для страниц применяется кодировка UTF-8, в ней же сохраняются и php-файлы, в этом случае достаточным оказалось задать дополнительный параметр в строке подключения:

$db = ibase_connect($database, $user, $password, «UTF-8»);

После чего результат запросов стал отдаваться в UTF-8.

P.S. Но не все так просто оказалось в других случаях. При установке на windows 2008 и обращении к функциям работы с БД я стал получать:

Fatal error: Call to undefined function ibase_connect()

одновременно в Apache\log\errors.log стало появляться:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\Program Files (x86)\\VertrigoServ\\php\\ext\\php_interbase.dll'

для решения этого нужно в system32 кинуть fbclient.dll

Запись опубликована в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.

Один комментарий: Доступ к СУБД Firebird из PHP. Делаем отображение информации на планшет из корпоративной БД.

  1. hello

    спасибо, полезное для себя нашел

Добавить комментарий для hello Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *