Signatur
Beschreibung
cubrid_free_result() gibt den Speicher frei, der durch eine CUBRID-Ergebnisressource belegt wird, die zuvor durch Funktionen wie cubrid_query() oder cubrid_execute() erzeugt wurde. Nach dem Aufruf ist die übergebene Ressource ungültig und darf nicht mehr verwendet werden.
In der Regel werden Ergebnisressourcen automatisch freigegeben, wenn das PHP-Skript endet. Bei großen Ergebnismengen oder in langen Schleifen empfiehlt es sich jedoch, cubrid_free_result() explizit aufzurufen, um den Speicherbedarf frühzeitig zu reduzieren und Speicherlecks zu vermeiden.
Diese Funktion ist besonders nützlich, wenn innerhalb eines Skripts mehrere umfangreiche Abfragen nacheinander ausgeführt werden und der Arbeitsspeicher knapp ist. Sie entspricht in ihrer Funktion dem mysql_free_result()-Pendant aus der älteren MySQL-Erweiterung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Die CUBRID-Ergebnisressource, die freigegeben werden soll. Diese Ressource wird typischerweise von cubrid_query() oder cubrid_execute() zurückgegeben. |
Rückgabewert
true zurück, wenn der Speicher erfolgreich freigegeben wurde, oder false, wenn ein Fehler auftrat (z. B. wenn eine ungültige Ressource übergeben wurde).Beispiele
Einfache Abfrage mit anschließender Speicherfreigabe
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if ($conn) {
$result = cubrid_query('SELECT * FROM city LIMIT 100', $conn);
if ($result) {
while ($row = cubrid_fetch_assoc($result)) {
echo $row['name'] . PHP_EOL;
}
// Speicher nach der Verarbeitung freigeben
cubrid_free_result($result);
}
cubrid_disconnect($conn);
}
Mehrere Abfragen mit expliziter Speicherfreigabe in einer Schleife
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if ($conn) {
$tables = ['city', 'nation', 'athlete'];
foreach ($tables as $table) {
$result = cubrid_query("SELECT COUNT(*) AS cnt FROM $table", $conn);
if ($result) {
$row = cubrid_fetch_assoc($result);
echo "Einträge in $table: " . $row['cnt'] . PHP_EOL;
// Speicher direkt nach Verwendung freigeben, um RAM zu schonen
cubrid_free_result($result);
}
}
cubrid_disconnect($conn);
}
// Wichtig · Fallstricke
Nach dem Aufruf von cubrid_free_result() sollte die freigegebene Ressource nicht mehr verwendet werden, da dies zu Fehlern oder undefiniertem Verhalten führen kann. Es empfiehlt sich, die Variable anschließend auf null zu setzen ($result = null;), um versehentliche Zugriffe zu verhindern.
Für Request-Handle-Ressourcen, die durch cubrid_prepare() erzeugt wurden, sollte stattdessen cubrid_close_request() verwendet werden.