Start · Sprachen · PHP · Referenz · mysql_close

mysql_close

Funktion

Schließt eine zuvor geöffnete MySQL-Verbindung und gibt die damit verbundenen Ressourcen frei.

seit PHP 4.0.0 Kategorie: db

Signatur

mysql_close(resource $link_identifier = null): bool

Beschreibung

mysql_close() beendet eine aktive Verbindung zum MySQL-Server, die zuvor mit mysql_connect() hergestellt wurde. Die Verbindungsressource wird dabei freigegeben. Wird kein $link_identifier angegeben, wird die zuletzt geöffnete Verbindung geschlossen.

In den meisten Fällen ist ein expliziter Aufruf von mysql_close() nicht zwingend erforderlich, da nicht-persistente Verbindungen am Ende der Skriptausführung automatisch geschlossen werden. Dennoch empfiehlt es sich bei lang laufenden Skripten oder beim Aufbau mehrerer Verbindungen, Ressourcen gezielt freizugeben.

Wichtiger Hinweis zur Deprecation: Die gesamte mysql_*-Erweiterung ist seit PHP 5.5.0 veraltet (deprecated) und wurde mit PHP 7.0.0 vollständig entfernt. Für neue Projekte sowie für die Migration bestehender Anwendungen sollten stattdessen mysqli_close() oder die PDO-Klasse verwendet werden.

Persistente Verbindungen, die mit mysql_pconnect() geöffnet wurden, können mit mysql_close() nicht geschlossen werden — diese werden vom Connection-Pool des Webservers verwaltet.

Parameter

Name Typ Default Beschreibung
$link_identifier resource null Die MySQL-Verbindungsressource, die geschlossen werden soll. Wird dieser Parameter weggelassen oder ist null, wird die zuletzt mit mysql_connect() geöffnete Verbindung verwendet.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Verbindung erfolgreich geschlossen wurde, oder false bei einem Fehler (z. B. wenn keine gültige Verbindungsressource angegeben wurde).

Beispiele

Verbindung öffnen und explizit schließen

<?php
// Verbindung zu MySQL herstellen
$link = mysql_connect('localhost', 'benutzer', 'geheim');

if (!$link) {
    die('Verbindung fehlgeschlagen: ' . mysql_error());
}

echo 'Verbindung erfolgreich hergestellt.' . PHP_EOL;

// Datenbankoperationen ...
$result = mysql_query('SELECT 1');

// Verbindung explizit schließen
if (mysql_close($link)) {
    echo 'Verbindung erfolgreich geschlossen.' . PHP_EOL;
} else {
    echo 'Fehler beim Schließen der Verbindung.' . PHP_EOL;
}
Verbindung erfolgreich hergestellt. Verbindung erfolgreich geschlossen.

Mehrere Verbindungen selektiv schließen

<?php
// Zwei separate Verbindungen öffnen
$link1 = mysql_connect('localhost', 'benutzer', 'geheim');
$link2 = mysql_connect('localhost', 'anderer_benutzer', 'anderes_geheim', true);

// Nur die erste Verbindung schließen
mysql_close($link1);
echo 'Erste Verbindung geschlossen.' . PHP_EOL;

// Mit der zweiten Verbindung weiterarbeiten
mysql_select_db('meine_datenbank', $link2);
// ... weitere Operationen ...

// Zweite Verbindung schließen
mysql_close($link2);
echo 'Zweite Verbindung geschlossen.' . PHP_EOL;
Erste Verbindung geschlossen. Zweite Verbindung geschlossen.

// Wichtig · Fallstricke

Deprecation und Entfernung: Die mysql_*-Erweiterung ist seit PHP 5.5.0 als veraltet markiert und seit PHP 7.0.0 vollständig entfernt. Code, der diese Funktionen verwendet, läuft auf modernen PHP-Versionen nicht mehr. Verwende stattdessen mysqli_close() oder PDO.

Persistente Verbindungen: Verbindungen, die mit mysql_pconnect() hergestellt wurden, werden von mysql_close() ignoriert und können nicht manuell geschlossen werden.

Ressourcen-Freigabe: Nach dem Aufruf von mysql_close() sind alle weiteren Operationen auf der geschlossenen Verbindungsressource ungültig und führen zu Fehlern. Ebenso werden alle zugehörigen Ergebnisressourcen (mysql_query()-Resultate) ungültig.