Signatur
Beschreibung
mysqli_get_client_info() liefert die Version der installierten MySQL-Client-Bibliothek (libmysqlclient oder mysqlnd) als lesbaren Versions-String, zum Beispiel mysqlnd 8.1.0 oder 5.7.39. Die Funktion benötigt keine aktive Datenbankverbindung und kann daher auch vor dem Verbindungsaufbau aufgerufen werden.
Typische Einsatzgebiete sind Debugging, Systemdiagnose oder die Überprüfung, ob eine bestimmte Mindestversion der Client-Bibliothek vorliegt, bevor versionsspezifische Features genutzt werden. In der objektorientierten Variante steht die statische Eigenschaft mysqli::$client_info zur Verfügung.
Soll die Version als Ganzzahl abgefragt werden (für programmatische Vergleiche), empfiehlt sich die Schwester-Funktion mysqli_get_client_version(), die eine numerische Darstellung nach dem Schema MajorVersion * 10000 + MinorVersion * 100 + SubVersion zurückgibt.
Rückgabewert
mysqlnd 8.1.0. Die Funktion gibt immer einen String zurück; ein Fehlerfall existiert nicht.Beispiele
Client-Version ausgeben
<?php
// Kein Verbindungsobjekt notwendig
$clientInfo = mysqli_get_client_info();
echo 'MySQL-Client-Bibliothek: ' . $clientInfo;
Mindestversion prüfen und ggf. Warnung ausgeben
<?php
$clientInfo = mysqli_get_client_info();
// Numerische Version für Vergleiche nutzen
$clientVersion = mysqli_get_client_version();
// Mindestanforderung: MySQL-Client >= 5.7
$minRequired = 5 * 10000 + 7 * 100 + 0; // 50700
if ($clientVersion < $minRequired) {
echo 'Warnung: Die MySQL-Client-Bibliothek ist veraltet (gefunden: ' . $clientInfo . ').';
} else {
echo 'Client-Bibliothek ist aktuell genug: ' . $clientInfo;
}
Objektorientierte Variante über mysqli-Eigenschaft
<?php
$mysqli = new mysqli('localhost', 'benutzer', 'passwort', 'datenbank');
if ($mysqli->connect_errno) {
die('Verbindungsfehler: ' . $mysqli->connect_error);
}
// Über Objekt-Eigenschaft
echo 'Client-Info (OOP): ' . $mysqli->client_info . PHP_EOL;
// Entspricht dem prozeduralen Aufruf
echo 'Client-Info (prozedural): ' . mysqli_get_client_info() . PHP_EOL;
$mysqli->close();
// Wichtig · Fallstricke
Hinweis zu mysqlnd vs. libmysqlclient: Ab PHP 5.4 wird standardmäßig der native MySQL-Treiber mysqlnd verwendet. Der zurückgegebene String unterscheidet sich je nach verwendeter Bibliothek im Format. Skripte, die den String parsen, sollten daher robust gegenüber unterschiedlichen Formaten sein.
Die Funktion akzeptiert seit PHP 8.1 keinen optionalen mysqli-Parameter mehr (der in früheren Versionen aus Kompatibilitätsgründen übergeben werden konnte, aber stets ignoriert wurde). Entsprechende Aufrufe erzeugen in PHP 8.1+ einen Deprecation-Hinweis.