Start · Sprachen · PHP · Referenz · fbird_close

fbird_close

Funktion

Schließt eine aktive Firebird/InterBase-Datenbankverbindung und gibt die zugehörigen Ressourcen frei.

seit PHP 5.0.0 Kategorie: db

Signatur

fbird_close(resource $connection = null): bool

Beschreibung

fbird_close() beendet eine Verbindung zu einer Firebird- oder InterBase-Datenbank, die zuvor mit ibase_connect() bzw. fbird_connect() geöffnet wurde. Wird kein Verbindungs-Handle übergeben, schließt die Funktion die zuletzt geöffnete Verbindung.

Wichtig: Offene Transaktionen werden nicht automatisch committed. Es empfiehlt sich daher, vor dem Aufruf von fbird_close() alle laufenden Transaktionen explizit mit fbird_commit() oder fbird_rollback() abzuschließen, um Datenverlust oder inkonsistente Zustände zu vermeiden.

Persistente Verbindungen, die mit ibase_pconnect() bzw. fbird_pconnect() erzeugt wurden, lassen sich mit dieser Funktion nicht schließen — dafür muss fbird_pclose() verwendet werden.

fbird_close() ist ein Alias für ibase_close() und steht ab der Umbenennung der Extension zur Verfügung. In modernem PHP-Code sollte bevorzugt der fbird_*-Präfix verwendet werden.

Parameter

Name Typ Default Beschreibung
$connection resource null Das Verbindungs-Handle, das von fbird_connect() oder ibase_connect() zurückgegeben wurde. Wird kein Wert übergeben, wird die zuletzt geöffnete Verbindung geschlossen.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Verbindung erfolgreich geschlossen wurde, andernfalls false.

Beispiele

Einfache Verbindung öffnen und schließen

<?php
// Verbindung zur Firebird-Datenbank herstellen
$connection = fbird_connect('localhost:/var/lib/firebird/mydb.fdb', 'sysdba', 'masterkey');

if (!$connection) {
    die('Verbindung fehlgeschlagen: ' . fbird_errmsg());
}

echo "Verbindung erfolgreich hergestellt.\n";

// Datenbankoperationen durchführen...
$result = fbird_query($connection, 'SELECT * FROM customers');

while ($row = fbird_fetch_assoc($result)) {
    echo $row['NAME'] . "\n";
}

// Verbindung schließen
if (fbird_close($connection)) {
    echo "Verbindung erfolgreich geschlossen.\n";
} else {
    echo "Fehler beim Schließen der Verbindung.\n";
}
Verbindung erfolgreich hergestellt. ... Verbindung erfolgreich geschlossen.

Transaktion vor dem Schließen abschließen

<?php
$connection = fbird_connect('localhost:/var/lib/firebird/mydb.fdb', 'sysdba', 'masterkey');

// Transaktion starten
$transaction = fbird_trans(IBASE_WRITE, $connection);

try {
    fbird_query($transaction, "INSERT INTO orders (customer_id, total) VALUES (42, 199.99)");

    // Transaktion committen, bevor die Verbindung geschlossen wird
    fbird_commit($transaction);
    echo "Datensatz erfolgreich gespeichert.\n";
} catch (Exception $e) {
    // Bei Fehler: Transaktion zurückrollen
    fbird_rollback($transaction);
    echo "Fehler: " . $e->getMessage() . "\n";
} finally {
    // Verbindung sauber schließen
    fbird_close($connection);
    echo "Verbindung geschlossen.\n";
}
Datensatz erfolgreich gespeichert. Verbindung geschlossen.

// Wichtig · Fallstricke

Offene Transaktionen: Beim Schließen einer Verbindung mit noch offenen, nicht abgeschlossenen Transaktionen werden diese nicht automatisch committed. Dies kann zu Datenverlust führen. Stets alle Transaktionen vor fbird_close() explizit abschließen.

Persistente Verbindungen: Für Verbindungen, die mit fbird_pconnect() erstellt wurden, muss stattdessen fbird_pclose() aufgerufen werden. fbird_close() hat auf persistente Verbindungen keine Wirkung.

Alias: fbird_close() ist ein Alias für ibase_close(). Die ibase_*-Funktionen gelten seit PHP 8.0 als veraltet (sofern nicht die separate ibase-Extension verwendet wird); der fbird_*-Präfix ist die modernere Schreibweise innerhalb der Firebird-Extension.