Signatur
Beschreibung
mysqli_get_links_stats() liefert eine Übersicht über den aktuellen Zustand aller MySQLi-Verbindungen im laufenden PHP-Prozess. Die Funktion ist besonders nützlich beim Debuggen von Verbindungsproblemen oder beim Monitoring von Datenbankverbindungen in langlebigen Prozessen (z. B. PHP-FPM, CLI-Daemons).
Das zurückgegebene Array enthält drei Schlüssel: total (Gesamtanzahl aller Verbindungen), active_plinks (Anzahl aktiver persistenter Verbindungen) und cached_plinks (Anzahl gecachter persistenter Verbindungen). Diese Werte helfen dabei, Verbindungslecks oder eine unerwartete Häufung persistenter Verbindungen zu erkennen.
Die Funktion hat keine Parameter und arbeitet prozessglobal – sie bezieht sich auf alle im aktuellen PHP-Prozess verwalteten MySQLi-Verbindungen, nicht nur auf eine einzelne Ressource. Sie ist ausschließlich als prozedurale Funktion verfügbar und hat kein objektorientiertes Pendant.
Rückgabewert
total (Gesamtanzahl aller Verbindungen), active_plinks (aktive persistente Verbindungen) und cached_plinks (gecachte persistente Verbindungen) zurück. Alle Werte sind vom Typ int.Beispiele
Verbindungsstatistiken ausgeben
<?php
$db = mysqli_connect('localhost', 'root', 'geheim', 'testdb');
$stats = mysqli_get_links_stats();
echo 'Verbindungen gesamt: ' . $stats['total'] . PHP_EOL;
echo 'Aktive plinks: ' . $stats['active_plinks'] . PHP_EOL;
echo 'Gecachte plinks: ' . $stats['cached_plinks'] . PHP_EOL;
mysqli_close($db);
Überwachung bei persistenten Verbindungen
<?php
// Persistente Verbindung über p:-Präfix
$db1 = mysqli_connect('p:localhost', 'root', 'geheim', 'testdb');
$db2 = mysqli_connect('p:localhost', 'root', 'geheim', 'testdb2');
$stats = mysqli_get_links_stats();
if ($stats['active_plinks'] > 10) {
error_log('Warnung: Zu viele aktive persistente MySQLi-Verbindungen: ' . $stats['active_plinks']);
}
var_dump($stats);
mysqli_close($db1);
mysqli_close($db2);
// Wichtig · Fallstricke
Verfügbarkeit: mysqli_get_links_stats() steht nur zur Verfügung, wenn PHP mit der MySQLi-Erweiterung kompiliert wurde und ist nicht auf allen Systemen dokumentiert – die Funktion gilt als experimentell und war nicht in allen PHP-5.6-Minor-Releases durchgängig vorhanden.
Persistente Verbindungen: Der Unterschied zwischen active_plinks und cached_plinks ist wichtig: Gecachte persistente Verbindungen sind zwar offen, werden aber gerade nicht aktiv von einer Skriptinstanz genutzt. Eine hohe Zahl gecachter Verbindungen kann auf Verbindungslecks hinweisen.
Kein OOP-Äquivalent: Es gibt keine Methode $mysqli->get_links_stats(); die Funktion ist ausschließlich prozedural verwendbar.