Start · Sprachen · PHP · Referenz · cubrid_close

cubrid_close

Funktion

Schließt eine geöffnete CUBRID-Datenbankverbindung und gibt die zugehörigen Ressourcen frei.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_close(resource $conn_identifier = null): bool

Beschreibung

cubrid_close() beendet eine aktive Verbindung zum CUBRID-Datenbankserver. Die Funktion gibt alle mit der Verbindung assoziierten Ressourcen auf Serverseite frei und macht die übergebene Verbindungsressource ungültig.

Wird der Parameter $conn_identifier weggelassen, wird die zuletzt geöffnete Verbindung geschlossen. Es empfiehlt sich jedoch, die Verbindungsressource stets explizit anzugeben, um unbeabsichtigtes Schließen falscher Verbindungen zu vermeiden, insbesondere wenn mehrere Verbindungen gleichzeitig geöffnet sind.

Bei Verwendung persistenter Verbindungen (geöffnet mit cubrid_pconnect()) hat cubrid_close() keinen Effekt – persistente Verbindungen werden vom PHP-Prozess verwaltet und enden erst mit dessen Lebenszyklus. In typischen Anwendungen ist ein expliziter Aufruf von cubrid_close() am Ende eines Skripts nicht zwingend notwendig, da PHP Verbindungen beim Skriptende automatisch schließt; bei lang laufenden Skripten oder Schleifen kann das explizite Schließen jedoch Ressourcen frühzeitig freigeben.

Parameter

Name Typ Default Beschreibung
$conn_identifier resource null Die Verbindungsressource, die von cubrid_connect() oder cubrid_connect_with_url() zurückgegeben wurde. Wird der Parameter weggelassen, 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 angegebene Ressource keine gültige CUBRID-Verbindung ist).

Beispiele

Einfaches Öffnen und Schließen einer CUBRID-Verbindung

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

echo "Verbindung erfolgreich hergestellt.\n";

// Datenbankoperationen durchführen ...
$result = cubrid_execute($conn, 'SELECT * FROM nation LIMIT 5');
if ($result) {
    while ($row = cubrid_fetch_assoc($result)) {
        echo $row['name'] . "\n";
    }
    cubrid_close_request($result);
}

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

Mehrere Verbindungen verwalten und gezielt schließen

<?php
$conn1 = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$conn2 = cubrid_connect('localhost', 33000, 'testdb', 'dba', '');

if (!$conn1 || !$conn2) {
    die('Mindestens eine Verbindung fehlgeschlagen.');
}

echo "Beide Verbindungen geöffnet.\n";

// conn1 nach Nutzung schließen
cubrid_close($conn1);
echo "Verbindung 1 geschlossen.\n";

// Weiterarbeiten mit conn2 ...

// conn2 am Ende schließen
cubrid_close($conn2);
echo "Verbindung 2 geschlossen.\n";
Beide Verbindungen geöffnet. Verbindung 1 geschlossen. Verbindung 2 geschlossen.

// Wichtig · Fallstricke

Persistente Verbindungen: Bei Verbindungen, die mit cubrid_pconnect() oder cubrid_pconnect_with_url() geöffnet wurden, hat cubrid_close() keinen Effekt. Diese Verbindungen bleiben bis zum Ende des PHP-Prozesses bestehen.

Ressourcenfreigabe: Vor dem Aufruf von cubrid_close() sollten alle offenen Anfragen (Results) mit cubrid_close_request() geschlossen werden, um sicherzustellen, dass alle Ressourcen ordnungsgemäß freigegeben werden.

Transaktionen: Wird cubrid_close() aufgerufen, während eine Transaktion noch offen ist (kein Commit/Rollback erfolgt), wird die Transaktion automatisch zurückgerollt. Stellen Sie sicher, dass Transaktionen vor dem Schließen der Verbindung explizit abgeschlossen werden.