Signatur
Beschreibung
mysqli_dump_debug_info() veranlasst den MySQL-Server, Debugging-Informationen in die serverseitige Logdatei zu schreiben. Dies ist das prozedurale Äquivalent zur objektorientierten Methode mysqli::dump_debug_info().
Die Funktion ist primär für Datenbankadministratoren und Entwickler nützlich, die auf Serverebene Fehler analysieren müssen. Die Informationen werden nicht an den PHP-Client zurückgegeben, sondern direkt in die MySQL-Fehler- oder Debuglogdatei auf dem Server geschrieben.
Wichtig: Damit die Funktion erfolgreich ausgeführt werden kann, muss der verbundene MySQL-Benutzer das SUPER-Privileg besitzen. Ohne diese Berechtigung schlägt der Aufruf fehl und gibt false zurück.
- Nützlich beim Diagnostizieren von Verbindungs- oder Abfrageproblemen auf Serverebene.
- Ausschließlich für Entwicklungs- und Debuggingzwecke gedacht — sollte in Produktionsumgebungen nicht routinemäßig aufgerufen werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $mysql Pflicht | mysqli | Ein aktives mysqli-Verbindungsobjekt, das von mysqli_connect() oder mysqli_init() zurückgegeben wurde. |
Rückgabewert
true zurück, wenn die Debugging-Informationen erfolgreich in die Logdatei geschrieben wurden. Gibt false zurück, wenn die Operation fehlgeschlagen ist — z. B. wenn der Benutzer nicht über ausreichende Berechtigungen verfügt.Beispiele
Debugging-Informationen in die MySQL-Logdatei schreiben
<?php
$mysqli = mysqli_connect('localhost', 'root', 'geheimesPasswort', 'testdb');
if (!$mysqli) {
die('Verbindungsfehler: ' . mysqli_connect_error());
}
// Versucht, Debug-Informationen in die MySQL-Logdatei zu schreiben
if (mysqli_dump_debug_info($mysqli)) {
echo 'Debugging-Informationen wurden erfolgreich in die Logdatei geschrieben.';
} else {
echo 'Fehler: ' . mysqli_error($mysqli);
}
mysqli_close($mysqli);
Objektorientierte Verwendung mit Fehlerbehandlung
<?php
$mysqli = new mysqli('localhost', 'root', 'geheimesPasswort', 'testdb');
if ($mysqli->connect_errno) {
die('Verbindungsfehler: ' . $mysqli->connect_error);
}
// OOP-Äquivalent: $mysqli->dump_debug_info()
if (mysqli_dump_debug_info($mysqli)) {
echo 'Debug-Dump erfolgreich ausgeführt.';
} else {
echo 'Fehler beim Debug-Dump: ' . $mysqli->error;
echo ' (Fehlercode: ' . $mysqli->errno . ')';
}
$mysqli->close();
// Wichtig · Fallstricke
Berechtigungen: Der MySQL-Benutzer benötigt das SUPER-Privileg. Fehlt dieses, gibt die Funktion false zurück. In vielen Shared-Hosting-Umgebungen steht dieses Privileg nicht zur Verfügung.
Sicherheitshinweis: Da diese Funktion erhöhte MySQL-Berechtigungen erfordert, sollte der hierfür verwendete Datenbankbenutzer niemals für normale Anwendungsverbindungen verwendet werden. Nur für administrative Debugging-Zwecke geeignet.
Produktivumgebungen: Die Funktion sollte in Produktionssystemen nicht dauerhaft oder automatisiert aufgerufen werden, da das Schreiben von Debuginformationen die Serverperformance beeinflussen und sensible Informationen in Logdateien hinterlassen kann.