Работа с Firebird в PHP через PDO

Обновлено и опубликовано Опубликовано:

Начиная с версии PHP 7.3 мы не можем использовать функции по работе с Firebird, так как они были исключены. Таким образом, можно работать с СУБД только через PDO. В данной инструкции мы рассмотрим процесс установки расширения PHP, а также примеры подключения к базе и выполнения SQL-запросов. Работа будет выполнена на примере Linux Ubuntu.

Установка расширения

Установка выполняется одной командой:

apt-get install -y php-pdo-firebird

Готово.

Однако, если у нас несколько альтернативных версий PHP, установка должна выполняться с указанием конкретной версии, например:

apt-get install -y php7.4-pdo-firebird

Подключение к базе

Для подключения в нашем скрипте PHP используем следующую конструкцию:

  1. $dsn = 'firebird:dbname=firebird.dmosk.ru:mydbname;charset=utf8;';
  2. $username = 'SYSDBA';
  3. $password = 'masterkey';
  4.  
  5.     try {
  6.         $fire_conn = new PDO($dsn, $username, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
  7.     } catch (PDOException $e) {
  8.         echo $e->getMessage();
  9.     }

* где:

  • firebird:dbname=firebird.dmosk.ru:mydbname;charset=utf8 — строка подключения:
    • firebird — указание на драйвер, который должна использовать система.
    • dbname=firebird.dmosk.ru — сервер для подключения. Можно имя, а можно IP-адрес.
    • mydbname — имя базы данных, к которой мы будем подключаться.
  • $username — переменная с пользователем, под которым будем подключаться к серверу СУБД.
  • $password — переменная с паролем, с которым будет выполняться подключение к Firebird.

Выборка

Для выполнения запроса SELECT применяем следующую конструкцию:

  1. $SQL = "SELECT * FROM users";
  2. $result = $fire_conn->query($SQL);
  3. $result->setFetchMode(PDO::FETCH_ASSOC);
  4. while ($mass = $result->fetch()) {
  5.     print_r($mass);
  6. }

 * где:

  • $SQL — переменная с нашим запросом.
  • PDO::FETCH_ASSOC — режим, при котором возвращается только ассоциативный массив.
  • $mass — переменная, в которой будут данные, извлеченные из базы.

Редактирование данных

Под редактирование подразумевается добавление, редактирование или удаление. Запросы для этого разные, но с точки зрения работы через PDO процессы схожи. Рассмотрим на примере вставки:

  1. $fire_conn->query("INSERT INTO users (name, title) VALUES ('Дмитрий', 'Программист')");

Читайте также

1. Включение поддержки Firebird + PHP версии 7.2 и ниже на Linux

2. Базовые SQL-запросы в Firebird

# Linux # Серверы # Базы данных
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет