Start · Sprachen · PHP · Referenz · mysql_stat

mysql_stat

Funktion

Gibt den aktuellen Serverstatus des MySQL-Servers als Zeichenkette zurück.

seit PHP 4.3.0 Kategorie: db

Signatur

mysql_stat(?resource $link_identifier = null): string|false

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

Typ
string|false
Beschreibung
Gibt eine Zeichenkette mit dem aktuellen Serverstatus zurück, zum Beispiel: 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);
?>
Server-Status: Uptime: 5380 Threads: 2 Questions: 1321 Slow queries: 0 Opens: 26 Flush tables: 1 Open tables: 17 Queries per second avg: 0.245

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);
?>
Uptime: 5380 Sekunden Laufende Threads: 2 Abfragen gesamt: 1321

// 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.