Start · Sprachen · PHP · Referenz · ibase_close

ibase_close

Funktion

Schließt eine bestehende Verbindung zu einer InterBase/Firebird-Datenbank und gibt alle zugehörigen Ressourcen frei.

seit PHP 4.0.0 Kategorie: db

Signatur

ibase_close(resource $connection_id = null): bool

Beschreibung

ibase_close() beendet die Verbindung zu einer InterBase- oder Firebird-Datenbank, die zuvor mit ibase_connect() oder ibase_pconnect() geöffnet wurde. Alle noch offenen Transaktionen, die nicht explizit bestätigt oder zurückgerollt wurden, werden dabei automatisch zurückgerollt (Rollback).

Wird kein $connection_id übergeben, wird die zuletzt geöffnete Verbindung geschlossen. Dies entspricht dem Verhalten vieler anderer PHP-Datenbankextensionen und ist praktisch, wenn innerhalb eines Skripts nur eine einzige Verbindung aktiv ist.

Bei persistenten Verbindungen, die mit ibase_pconnect() erstellt wurden, hat ibase_close() keinen sofortigen Effekt – die Verbindung bleibt im Verbindungspool bestehen und wird erst am Ende des Prozesses wirklich getrennt.

Hinweis: Die gesamte ibase_*-Erweiterung (auch bekannt als InterBase-Extension) wurde mit PHP 8.0 aus dem PHP-Kern entfernt und ist seitdem nur noch als PECL-Paket verfügbar (pecl/ibase). Für neue Projekte wird empfohlen, auf die firebird_*-Funktionen oder PDO mit dem Firebird-Treiber umzusteigen.

Parameter

Name Typ Default Beschreibung
$connection_id resource null Eine gültige InterBase-Verbindungsressource, die von ibase_connect() oder ibase_pconnect() zurückgegeben wurde. Wird dieser Parameter weggelassen oder auf null gesetzt, wird die zuletzt geöffnete Verbindung geschlossen.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Verbindung erfolgreich geschlossen wurde, oder false bei einem Fehler (z. B. wenn die übergebene Ressource ungültig ist).

Beispiele

Einfaches Öffnen und Schließen einer InterBase-Verbindung

<?php
// Verbindung zur Datenbank herstellen
$connection = ibase_connect(
    'localhost:/var/db/meine_datenbank.fdb',
    'sysdba',
    'masterkey'
);

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

echo "Verbindung erfolgreich hergestellt.\n";

// Datenbankoperationen durchführen ...
$result = ibase_query($connection, 'SELECT * FROM kunden');
while ($row = ibase_fetch_object($result)) {
    echo $row->KUNDENNAME . "\n";
}
ibase_free_result($result);

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

Mehrere Verbindungen explizit schließen

<?php
// Zwei Verbindungen zu verschiedenen Datenbanken öffnen
$conn1 = ibase_connect('localhost:/var/db/datenbank1.fdb', 'sysdba', 'masterkey');
$conn2 = ibase_connect('localhost:/var/db/datenbank2.fdb', 'sysdba', 'masterkey');

// Operationen auf beiden Datenbanken ...

// Verbindungen explizit in umgekehrter Reihenfolge schließen
ibase_close($conn2);
echo "Verbindung 2 geschlossen.\n";

ibase_close($conn1);
echo "Verbindung 1 geschlossen.\n";
Verbindung 2 geschlossen. Verbindung 1 geschlossen.

// Wichtig · Fallstricke

Deprecation / Entfernung: Die ibase_*-Erweiterung wurde ab PHP 7.4 als deprecated markiert und mit PHP 8.0 vollständig aus dem PHP-Kern entfernt. Sie steht seitdem nur noch über PECL zur Verfügung. Für neue Projekte sollte stattdessen PDO mit dem Firebird-Treiber (PDO_FIREBIRD) verwendet werden.

Offene Transaktionen: Beim Schließen einer Verbindung werden alle noch nicht abgeschlossenen Transaktionen automatisch zurückgerollt. Es ist daher wichtig, alle Transaktionen vor dem Schließen der Verbindung explizit mit ibase_commit() zu bestätigen oder mit ibase_rollback() zurückzurollen, um Datenverlust zu vermeiden.

Persistente Verbindungen: Bei mit ibase_pconnect() erstellten persistenten Verbindungen hat ibase_close() keinen sofortigen Effekt; die Verbindung bleibt im Pool bestehen.