Signatur
Beschreibung
mysql_stat() liefert eine Zeichenkette mit Statusinformationen über den laufenden MySQL-Server, ähnlich dem Befehl SHOW STATUS in MySQL. Zurückgegeben werden u. a. Informationen über Betriebszeit (Uptime), laufende Threads, Abfragen, geöffnete Tabellen und Flush-Operationen.
Die Funktion ist nützlich, um schnell einen Überblick über den Zustand des Datenbankservers zu erhalten, zum Beispiel für Monitoring-Skripte oder Diagnose-Werkzeuge. Die zurückgegebene Zeichenkette enthält keine vollständigen Statusinformationen; für umfassendere Daten sollte SHOW STATUS direkt per Abfrage verwendet werden.
Wichtig: Die gesamte mysql_*-Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 vollständig entfernt. Für neue Projekte sollten stattdessen mysqli oder PDO verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $link_identifier | resource|null | null | Die MySQL-Verbindungskennung, die von mysql_connect() zurückgegeben wurde. Wird kein Wert oder null übergeben, wird die zuletzt geöffnete Verbindung verwendet. Ist keine Verbindung offen, wird versucht, eine neue mit den Standardparametern herzustellen. |
Rückgabewert
Uptime: 5380 Threads: 2 Questions: 1321 Slow queries: 0 Opens: 26 Flush tables: 1 Open tables: 17 Queries per second avg: 0.245. Bei einem Fehler wird false zurückgegeben.Beispiele
Grundlegende Verwendung von mysql_stat()
<?php
$link = mysql_connect('localhost', 'benutzer', 'passwort');
if (!$link) {
die('Verbindung fehlgeschlagen: ' . mysql_error());
}
$status = mysql_stat($link);
if ($status !== false) {
echo 'Server-Status: ' . $status . PHP_EOL;
} else {
echo 'Fehler beim Abrufen des Status.' . PHP_EOL;
}
mysql_close($link);
?>
Statuswerte als assoziatives Array aufbereiten
<?php
$link = mysql_connect('localhost', 'benutzer', 'passwort');
if (!$link) {
die('Verbindung fehlgeschlagen: ' . mysql_error());
}
$statusString = mysql_stat($link);
if ($statusString !== false) {
// Statusstring in Schlüssel-Wert-Paare zerlegen
$parts = explode(' ', $statusString);
$statusArray = [];
foreach ($parts as $part) {
$pair = explode(': ', $part, 2);
if (count($pair) === 2) {
$statusArray[trim($pair[0])] = trim($pair[1]);
}
}
echo 'Uptime: ' . $statusArray['Uptime'] . ' Sekunden' . PHP_EOL;
echo 'Laufende Threads: ' . $statusArray['Threads'] . PHP_EOL;
echo 'Abfragen gesamt: ' . $statusArray['Questions'] . PHP_EOL;
}
mysql_close($link);
?>
// Wichtig · Fallstricke
Veraltet und entfernt: Die mysql_*-Erweiterung wurde in PHP 5.5.0 als veraltet (deprecated) markiert und in PHP 7.0.0 vollständig entfernt. Code, der diese Funktion verwendet, ist auf PHP 7 und neuer nicht lauffähig.
Als moderne Alternative kann mysqli_stat() oder eine direkte SQL-Abfrage mit SHOW STATUS über PDO bzw. mysqli eingesetzt werden. Der Rückgabewert von mysql_stat() enthält nur einen Teil der Statusinformationen – für vollständige Daten empfiehlt sich SHOW STATUS.