Signatur
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
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";
}
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";
}
// 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.