get_client_info
Erfahren Sie mehr über die Funktion mysqli_get_client_info() in PHP, die die Version der MySQL-Client-Bibliothek zurückgibt – mit Syntax und Beispielen.
Die Funktion mysqli_get_client_info() gibt die Version der MySQL-Client-Bibliothek zurück, gegen die die MySQLi-Erweiterung kompiliert wurde. Client-Bibliothek bezeichnet hier die C-Bibliothek (libmysqlclient oder mysqlnd), die PHP zur Kommunikation mit MySQL verwendet – nicht Ihren Browser, Ihre Anwendung oder den Datenbankserver. Diese Seite erläutert die Syntax, was der Rückgabewert tatsächlich aussagt und wie sich die Funktion von den verwandten „Server"- und „Client-Version"-Funktionen unterscheidet.
Was ist die Client-Bibliothek?
Wenn PHP mit MySQL kommuniziert, geschieht dies über eine Low-Level-Client-Bibliothek, die in die MySQLi-Erweiterung einkompiliert ist. Bei modernen PHP-Installationen ist dies fast immer mysqlnd (der MySQL Native Driver), der mit PHP selbst ausgeliefert wird; ältere oder benutzerdefinierte Builds können Oracles libmysqlclient verwenden. mysqli_get_client_info() gibt den Versionsstring der jeweils verwendeten Bibliothek zurück, zum Beispiel mysqlnd 8.1.0 oder 8.0.30.
Dies ist nützlich für:
- Debugging von Verbindungsproblemen, die vom verwendeten Treiber abhängen.
- Protokollierung von Umgebungsdetails, damit ein Fehlerbericht den genauen Client-Build enthält.
- Überprüfung der Kompatibilität, wenn eine Funktion eine Mindestversion der Client-Bibliothek erfordert.
Syntax
mysqli_get_client_info(?mysqli $mysql = null): string| Parameter | Beschreibung |
|---|---|
$mysql | Optional. Ein Verbindungslink, der von mysqli_connect() / new mysqli() zurückgegeben wird. Dieser Parameter wird in modernem PHP ignoriert – der Wert stammt aus der einkompilierten Bibliothek, nicht aus der Verbindung – wird jedoch aus Gründen der Abwärtskompatibilität akzeptiert. |
Rückgabewert: ein string, der die Version der MySQL-Client-Bibliothek beschreibt. Zum Aufruf ist keine Verbindung erforderlich.
Prozedurales Beispiel
Da die Funktion einen Wert zur Kompilierzeit liest, benötigen Sie nicht einmal eine aktive Datenbankverbindung:
<?php
// No connection needed — this reflects the library PHP was built with
$client_info = mysqli_get_client_info();
printf("MySQL client library version: %s\n", $client_info);
?>Eine typische Ausgabe sieht folgendermaßen aus (der genaue string hängt von Ihrem PHP-Build ab):
MySQL client library version: mysqlnd 8.1.0Objektorientiertes Beispiel
MySQLi stellt diesen Wert auch über die Eigenschaft client_info und die Methode mysqli::get_client_info() bereit:
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_errno) {
die("Connection failed: " . $mysqli->connect_error);
}
// Both lines print the same value
echo $mysqli->client_info . "\n";
echo $mysqli->get_client_info() . "\n";
$mysqli->close();
?>Client-Bibliothek vs. Client-Version vs. Server-Info
Diese vier Funktionen werden leicht verwechselt:
mysqli_get_client_info()— die Version der Client-Bibliothek als string (z. B.mysqlnd 8.1.0).mysqli_get_client_version()— dieselbe Version der Client-Bibliothek als gepackter Integer (z. B.80100), praktisch für numerische Vergleiche.mysqli_get_server_info()— die Version des MySQL-Servers, mit dem Sie verbunden sind.mysqli_get_host_info()— ein string, der den Verbindungstyp beschreibt (Host, Socket usw.).
Wenn Sie nur eine numerische Prüfung „Ist diese Version neu genug?" durchführen möchten, bevorzugen Sie mysqli_get_client_version(). Verwenden Sie mysqli_get_client_info(), wenn Sie ein menschenlesbares Label für Protokolle benötigen.
Fazit
mysqli_get_client_info() gibt einen menschenlesbaren string für die MySQL-Client-Bibliothek zurück, die in die MySQLi-Erweiterung einkompiliert ist. Sie erfordert keine Verbindung und ist am nützlichsten für Protokollierung und Diagnose. Weitere Informationen zum Öffnen von Verbindungen finden Sie unter mysqli_connect() und in der MySQLi-Übersicht.