Signatur
Beschreibung
mysqli_get_server_version() liefert die Versionsnummer des MySQL-Servers, mit dem die übergebene Verbindung besteht, als int. Die Zahl ist nach dem Schema Hauptversion * 10000 + Nebenversion * 100 + Patch kodiert. MySQL 8.0.32 ergibt beispielsweise den Wert 80032.
Diese Funktion ist nützlich, wenn eine Anwendung bestimmte Datenbankfunktionen nur ab einer bestimmten Server-Version nutzen soll. Durch einen einfachen Vergleich des Integer-Wertes lässt sich die kompatible Codepfad-Steuerung realisieren, ohne Zeichenketten-Parsing betreiben zu müssen.
Im objektorientierten Stil steht die äquivalente Eigenschaft mysqli::$server_version zur Verfügung. Wer die menschenlesbare Versionszeichenkette benötigt, verwendet stattdessen mysqli_get_server_info().
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $mysql Pflicht | mysqli | Eine aktive MySQLi-Verbindungsressource, wie sie von mysqli_connect() oder new mysqli() zurückgegeben wird. |
Rückgabewert
Hauptversion * 10000 + Nebenversion * 100 + Patch. Bei MySQL 5.7.44 wäre das beispielsweise 50744.Beispiele
Serverversion ausgeben und dekodieren
<?php
$mysqli = new mysqli('localhost', 'user', 'password', 'testdb');
if ($mysqli->connect_errno) {
die('Verbindungsfehler: ' . $mysqli->connect_error);
}
$version = mysqli_get_server_version($mysqli);
$major = (int) ($version / 10000);
$minor = (int) (($version % 10000) / 100);
$patch = (int) ($version % 100);
echo "Server-Versionsnummer (Integer): $version\n";
echo "Dekodiert: $major.$minor.$patch\n";
$mysqli->close();
Versionsbasierte Feature-Steuerung
<?php
$mysqli = new mysqli('localhost', 'user', 'password', 'testdb');
if ($mysqli->connect_errno) {
die('Verbindungsfehler: ' . $mysqli->connect_error);
}
$version = mysqli_get_server_version($mysqli);
// JSON-Funktionen sind ab MySQL 5.7.8 (50708) verfügbar
if ($version >= 50708) {
echo "JSON-Unterstützung ist verfügbar.\n";
// JSON-spezifische Abfrage ausführen ...
} else {
echo "JSON-Unterstützung nicht vorhanden – bitte MySQL aktualisieren.\n";
}
// Common Table Expressions (CTEs) sind ab MySQL 8.0.0 (80000) verfügbar
if ($version >= 80000) {
echo "CTEs (WITH-Klausel) werden unterstützt.\n";
} else {
echo "CTEs werden nicht unterstützt.\n";
}
$mysqli->close();
// Wichtig · Fallstricke
Die Funktion gibt die Version des Server-Prozesses zurück, nicht die der Client-Bibliothek. Um die Client-Bibliotheks-Version zu ermitteln, steht mysqli_get_client_version() zur Verfügung.
Im objektorientierten Stil kann die Serverversion auch über $mysqli->server_version abgerufen werden, was identische Ergebnisse liefert.