Signatur
Beschreibung
cubrid_disconnect() beendet eine zuvor mit cubrid_connect() oder cubrid_connect_with_url() geöffnete Verbindung zum CUBRID-Datenbankserver. Alle noch offenen Transaktionen werden dabei automatisch zurückgerollt (Rollback), bevor die Verbindung getrennt wird.
Der Parameter $conn_identifier ist optional: Wird er weggelassen, wird die zuletzt geöffnete Verbindung geschlossen. Es empfiehlt sich jedoch, den Handle stets explizit zu übergeben, um unbeabsichtigte Seiteneffekte in Anwendungen mit mehreren gleichzeitigen Verbindungen zu vermeiden.
Nach dem Aufruf von cubrid_disconnect() ist das übergebene Verbindungs-Handle ungültig und darf nicht mehr verwendet werden. Versuche, damit weitere Abfragen auszuführen, führen zu Fehlern. In lang laufenden Skripten und Webanwendungen sollte die Verbindung so früh wie möglich geschlossen werden, um Datenbankressourcen freizugeben.
Im Gegensatz zu persistenten Verbindungen (erstellt mit cubrid_pconnect()) wird die Verbindung bei cubrid_disconnect() tatsächlich physisch getrennt. Persistente Verbindungen werden durch diesen Aufruf nicht beendet.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $conn_identifier | resource | null | Das Verbindungs-Handle, das von cubrid_connect() oder cubrid_connect_with_url() zurückgegeben wurde. Wird der Parameter weggelassen, wird die zuletzt geöffnete Verbindung geschlossen. |
Rückgabewert
true zurück, wenn die Verbindung erfolgreich geschlossen wurde, oder false bei einem Fehler (z. B. wenn das übergebene Handle ungültig ist).Beispiele
Einfache Verbindung öffnen und schließen
<?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');
while ($row = cubrid_fetch_assoc($result)) {
echo $row['name'] . "\n";
}
cubrid_close_request($result);
// Verbindung explizit schließen
$closed = cubrid_disconnect($conn);
if ($closed) {
echo "Verbindung erfolgreich geschlossen.\n";
} else {
echo "Fehler beim Schließen der Verbindung.\n";
}
Verbindung mit Fehlerbehandlung und Transaktion
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindung fehlgeschlagen: ' . cubrid_error());
}
cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_FALSE);
try {
cubrid_execute($conn, "INSERT INTO athlete (name, gender) VALUES ('Max Mustermann', 'M')");
cubrid_commit($conn);
echo "Datensatz erfolgreich eingefügt und committet.\n";
} catch (Exception $e) {
cubrid_rollback($conn);
echo "Fehler: " . $e->getMessage() . " – Rollback durchgeführt.\n";
} finally {
// Verbindung in jedem Fall schließen
cubrid_disconnect($conn);
echo "Verbindung geschlossen.\n";
}
// Wichtig · Fallstricke
Offene Transaktionen: Wird cubrid_disconnect() aufgerufen, während eine Transaktion noch offen ist (d. h. weder cubrid_commit() noch cubrid_rollback() wurde aufgerufen), führt CUBRID automatisch ein Rollback durch. Stellen Sie daher sicher, dass alle Transaktionen vor dem Trennen der Verbindung explizit abgeschlossen werden.
Persistente Verbindungen: cubrid_disconnect() schließt keine persistenten Verbindungen, die mit cubrid_pconnect() erstellt wurden. Diese werden erst am Ende des Prozesses freigegeben.
Ressourcen-Handle: Nach dem Aufruf ist das Handle $conn_identifier ungültig. Weisen Sie der Variable anschließend null zu, um versehentliche Wiederverwendung zu verhindern: $conn = null;