Signatur
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
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;
}
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;
// 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.