Signatur
Beschreibung
cubrid_close_prepare() schließt ein mit cubrid_prepare() erstelltes Statement-Handle und gibt alle damit verbundenen Server- und Client-seitigen Ressourcen frei. Nach dem Aufruf ist das Handle ungültig und darf nicht weiter verwendet werden.
Diese Funktion sollte aufgerufen werden, sobald ein vorbereitetes Statement nicht mehr benötigt wird, um Speicherlecks und unnötige Verbindungsbelastungen zu vermeiden – insbesondere in Schleifen oder bei häufig wechselnden Abfragen.
Wenn der PHP-Prozess endet, werden nicht geschlossene Handles automatisch freigegeben. In langlebigen Skripten oder bei vielen Prepared Statements ist ein explizites Schließen jedoch dringend empfohlen, um Ressourcen frühzeitig zurückzugeben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $req_identifier Pflicht | resource | Das Request-Handle (Ressource), das von cubrid_prepare() zurückgegeben wurde und geschlossen werden soll. |
Rückgabewert
true zurück, wenn das Handle erfolgreich geschlossen wurde, oder false bei einem Fehler (z. B. wenn das Handle bereits ungültig ist).Beispiele
Einfaches Schließen eines vorbereiteten Statements
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$sql = 'SELECT * FROM member WHERE id = ?';
$req = cubrid_prepare($conn, $sql);
cubrid_bind($req, 1, 42, 'INT');
cubrid_execute($req);
while ($row = cubrid_fetch($req)) {
echo $row['name'] . PHP_EOL;
}
// Statement-Handle schließen und Ressourcen freigeben
cubrid_close_prepare($req);
cubrid_disconnect($conn);
?>
Mehrere Statements in einer Schleife mit sauberem Schließen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$ids = [1, 2, 3, 4, 5];
$sql = 'SELECT name, email FROM member WHERE id = ?';
foreach ($ids as $id) {
$req = cubrid_prepare($conn, $sql);
cubrid_bind($req, 1, $id, 'INT');
cubrid_execute($req);
if ($row = cubrid_fetch($req, CUBRID_ASSOC)) {
echo 'ID ' . $id . ': ' . $row['name'] . ' (' . $row['email'] . ')' . PHP_EOL;
}
// Jedes Handle sofort nach Verwendung schließen
cubrid_close_prepare($req);
}
cubrid_disconnect($conn);
?>
// Wichtig · Fallstricke
Ressourcenverwaltung: In Schleifen oder bei vielen aufeinanderfolgenden Prepared Statements ist es wichtig, cubrid_close_prepare() nach jeder Verwendung aufzurufen, da andernfalls serverseitige Ressourcen blockiert werden können, bis das Skript endet.
Deprecation: Die CUBRID-Erweiterung verwendet einen älteren ressourcenbasierten Ansatz. In modernen PHP-Versionen (≥ 8.0) wird die automatische Freigabe von Ressourcen durch den Garbage Collector verbessert, ersetzt aber nicht den expliziten Aufruf dieser Funktion in produktiven Anwendungen.