Start · Sprachen · PHP · Referenz · ibase_connect

ibase_connect

Funktion

Öffnet eine Verbindung zu einer Firebird/InterBase-Datenbank und gibt eine Verbindungsressource zurück.

seit PHP 4.0.0 Kategorie: db

Signatur

ibase_connect(string $database = '', string $username = '', string $password = '', string $charset = '', int $buffers = 0, int $dialect = 3, string $role = '', int $sync = 0): resource|false

Beschreibung

ibase_connect() stellt eine Verbindung zu einer Firebird- oder InterBase-Datenbankinstanz her. Die Funktion gehört zur InterBase-Erweiterung von PHP (ext/interbase bzw. ext/ibase) und ermöglicht den Zugriff auf Firebird/InterBase-Datenbanken mittels PHP. Die zurückgegebene Ressource wird von allen nachfolgenden Datenbankoperationen wie ibase_query() oder ibase_trans() verwendet.

Im Gegensatz zu ibase_pconnect() öffnet ibase_connect() bei jedem Aufruf eine neue, nicht persistente Verbindung. Wird dieselbe Kombination aus Datenbankpfad, Benutzername und Passwort mehrfach innerhalb eines Scripts aufgerufen, wird eine neue Verbindung erstellt — es sei denn, PHP erkennt eine identische bestehende Verbindung in der aktuellen Session.

Der Parameter $database kann ein lokaler Dateipfad zur Datenbankdatei sein oder eine Netzwerkangabe im Format hostname:/pfad/zur/datenbank.fdb bzw. hostname:c:\pfad\datenbank.fdb unter Windows. Der Zeichensatz ($charset) sollte dem in der Datenbank definierten Standardzeichensatz entsprechen, um Kodierungsprobleme zu vermeiden.

Hinweis: Die InterBase/Firebird-Erweiterung wurde in PHP 8.0 aus dem PHP-Kern entfernt und steht seither als PECL-Paket (ibase) bereit. Für neue Projekte empfiehlt sich die Verwendung der Firebird PDO-Erweiterung als modernere Alternative.

Parameter

Name Typ Default Beschreibung
$database string Pfad zur Datenbankdatei auf dem Server oder Netzwerkangabe im Format hostname:/pfad/datei.fdb. Leer lässt die Erweiterung den Standardwert aus der PHP-Konfiguration verwenden.
$username string Datenbankbenutzername. Wird kein Wert angegeben, wird der Wert aus ibase.default_user in der php.ini verwendet.
$password string Passwort des Datenbankbenutzers. Wird kein Wert angegeben, wird der Wert aus ibase.default_password in der php.ini verwendet.
$charset string Zeichensatz, der für die Verbindung verwendet werden soll, z. B. UTF8 oder WIN1252. Sollte mit dem Datenbankzeichensatz übereinstimmen.
$buffers int 0 Anzahl der Datenbankpuffer, die dem serverseitigen Cache zugewiesen werden. Bei 0 verwendet der Server seinen Standard.
$dialect int 3 SQL-Dialekt für die Verbindung (1, 2 oder 3). Dialekt 3 ist der Standard für moderne Firebird-Datenbanken.
$role string Optionale SQL-Rolle, die beim Verbindungsaufbau aktiviert werden soll. Die Rolle muss dem Benutzer zugewiesen sein.
$sync int 0 Reservierter Parameter für zukünftige Verwendung. Sollte auf 0 belassen werden.

Rückgabewert

Typ
resource|false
Beschreibung
Gibt bei Erfolg eine Verbindungsressource zurück, die für nachfolgende Datenbankoperationen verwendet werden kann. Im Fehlerfall (z. B. falsche Zugangsdaten, Datenbank nicht erreichbar) wird false zurückgegeben.

Beispiele

Einfache Verbindung zu einer lokalen Firebird-Datenbank

<?php
$host     = 'localhost';
$dbPath   = '/var/lib/firebird/data/meinedaten.fdb';
$user     = 'SYSDBA';
$password = 'masterkey';

$conn = ibase_connect($host . ':' . $dbPath, $user, $password, 'UTF8');

if ($conn === false) {
    die('Verbindung fehlgeschlagen: ' . ibase_errmsg());
}

$result = ibase_query($conn, 'SELECT FIRST 5 * FROM MITARBEITER');

while ($row = ibase_fetch_assoc($result)) {
    echo $row['NAME'] . ' – ' . $row['ABTEILUNG'] . PHP_EOL;
}

ibase_free_result($result);
ibase_close($conn);
Max Mustermann – Entwicklung Erika Musterfrau – Marketing ...

Verbindung mit Fehlerbehandlung und SQL-Rolle

<?php
$dbString = '192.168.1.10:/opt/firebird/dbs/firma.fdb';

$conn = ibase_connect(
    $dbString,
    'BENUTZER1',
    'geheimesPasswort',
    'UTF8',
    0,
    3,
    'LESE_ROLLE'
);

if (!$conn) {
    $fehler = ibase_errmsg();
    error_log('Firebird-Verbindungsfehler: ' . $fehler);
    http_response_code(503);
    exit('Datenbankverbindung konnte nicht hergestellt werden.');
}

echo 'Verbunden mit Rolle LESE_ROLLE.' . PHP_EOL;

// Abfrage ausführen ...
ibase_close($conn);
Verbunden mit Rolle LESE_ROLLE.

// Wichtig · Fallstricke

Deprecation / Entfernung: Die ibase_*-Funktionen wurden mit PHP 8.0 aus dem PHP-Kern entfernt. Sie sind seither nur noch über das PECL-Paket ibase verfügbar. Für neue Projekte sollte die Firebird PDO-Erweiterung verwendet werden.

Sicherheit: Zugangsdaten (Benutzername und Passwort) sollten niemals hartcodiert im Quellcode stehen. Verwende Umgebungsvariablen oder eine externe Konfigurationsdatei außerhalb des Web-Roots. Benutzereingaben dürfen niemals direkt in SQL-Abfragen eingebaut werden — nutze stets parametrisierte Abfragen mit ibase_prepare() und ibase_execute().

Persistente Verbindungen: Für lang laufende Anwendungen kann ibase_pconnect() eine persistente Verbindung herstellen, die über mehrere Script-Aufrufe hinweg wiederverwendet wird. Dies reduziert den Verbindungsaufbau-Overhead, kann aber zu Problemen führen, wenn die Verbindung im Hintergrund getrennt wurde.