Signatur
Beschreibung
fbird_free_result() gibt die mit einem Abfrageergebnis verbundenen Ressourcen frei, die durch Funktionen wie fbird_query() oder fbird_execute() erzeugt wurden. Nachdem diese Funktion aufgerufen wurde, ist die übergebene Ergebnis-Ressource ungültig und darf nicht weiterverwendet werden.
In lang laufenden Skripten oder Schleifen, die viele Abfragen ausführen, empfiehlt es sich, Ergebnisressourcen nach ihrer Verwendung explizit freizugeben, um den Speicherverbrauch zu reduzieren. PHP gibt Ressourcen zwar automatisch am Ende des Skripts frei, aber bei umfangreichen Datenbankoperationen kann ein manueller Aufruf dieser Funktion den Speicherbedarf deutlich senken.
fbird_free_result() ist ein Alias für ibase_free_result(). Beide Funktionen sind Teil der Firebird/InterBase-Datenbankschnittstelle von PHP. Seit PHP 8.4 ist die ibase-Erweiterung nicht mehr im PHP-Kern enthalten und muss als PECL-Paket installiert werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Eine gültige Ergebnis-Ressource, die von fbird_query() oder fbird_execute() zurückgegeben wurde. |
Rückgabewert
true zurück, wenn die Ressource erfolgreich freigegeben wurde, andernfalls false.Beispiele
Ergebnisressource nach Abfrage freigeben
<?php
// Verbindung zur Firebird-Datenbank herstellen
$dbh = fbird_connect('localhost:/path/to/database.fdb', 'SYSDBA', 'masterkey');
if (!$dbh) {
die('Verbindung fehlgeschlagen: ' . fbird_errmsg());
}
// Abfrage ausführen
$result = fbird_query($dbh, 'SELECT ID, NAME FROM KUNDEN WHERE AKTIV = 1');
if ($result) {
while ($row = fbird_fetch_assoc($result)) {
echo 'ID: ' . $row['ID'] . ', Name: ' . $row['NAME'] . PHP_EOL;
}
// Ressource explizit freigeben
fbird_free_result($result);
}
fbird_close($dbh);
Mehrere Abfragen in einer Schleife mit Ressourcenfreigabe
<?php
$dbh = fbird_connect('localhost:/path/to/database.fdb', 'SYSDBA', 'masterkey');
$abteilungen = [10, 20, 30];
foreach ($abteilungen as $abtId) {
$result = fbird_query(
$dbh,
"SELECT COUNT(*) AS ANZAHL FROM MITARBEITER WHERE ABTEILUNG_ID = " . (int)$abtId
);
if ($result) {
$row = fbird_fetch_assoc($result);
echo 'Abteilung ' . $abtId . ': ' . $row['ANZAHL'] . ' Mitarbeiter' . PHP_EOL;
// Ressource sofort nach Verwendung freigeben, um Speicher zu sparen
fbird_free_result($result);
}
}
fbird_close($dbh);
// Wichtig · Fallstricke
Alias: fbird_free_result() ist ein Alias von ibase_free_result(). Es wird empfohlen, einheitlich entweder die fbird_- oder die ibase_-Varianten zu verwenden, um Verwirrung im Code zu vermeiden.
Verfügbarkeit: Ab PHP 8.4 ist die InterBase/Firebird-Erweiterung nicht mehr Teil des PHP-Kerns. Sie muss über PECL (pecl install interbase) nachinstalliert werden. Prüfen Sie die Verfügbarkeit mit extension_loaded('interbase').
Ressourcen-Verwaltung: Nach dem Aufruf von fbird_free_result() darf die freigegebene Ressource nicht mehr verwendet werden — jeder weitere Zugriff führt zu einem Fehler. Setzen Sie die Variable gegebenenfalls auf null, um versehentlichen Weiterzugriff zu verhindern.