Start · Sprachen · PHP · Referenz · mysqli_dump_debug_info

mysqli_dump_debug_info

Funktion

Schreibt interne Debugging-Informationen des MySQL-Servers in dessen Logdatei.

seit PHP 5.0.0 Kategorie: db

Signatur

mysqli_dump_debug_info(mysqli $mysql): bool

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

Typ
bool
Beschreibung
Gibt 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);
Debugging-Informationen wurden erfolgreich in die Logdatei geschrieben.

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();
Debug-Dump erfolgreich ausgeführt.

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