OUJOOD.COM
La fonction server_info / mysqli_get_server_info() en PHP
PHP Version: 5+
La fonction server_info ou mysqli_get_server_info() est une fonction PHP qui permet de récupérer la version du serveur MySQL auquel un script est connecté. Elle est disponible dans les deux styles de programmation PHP : orienté objet et procédural.
Définition et utilisation
En style orienté objet, la fonction s'appelle server_info() et est une propriété de l'objet mysqli. Elle retourne une chaîne de caractères représentant la version du serveur MySQL.
En style procédural, la fonction s'appelle mysqli_get_server_info() et prend en paramètre un objet mysqli. Elle retourne également une chaîne de caractères représentant la version du serveur MySQL.
Syntaxes
Style orienté objet
$mysqli = new mysqli("localhost", "my_user", "my_password"); // Récupère la version du serveur MySQL echo $mysqli->server_info;
Style procédural
$link = mysqli_connect("localhost", "my_user", "my_password"); // Récupère la version du serveur MySQL echo mysqli_get_server_info($link);
Valeurs possibles
La chaîne de caractères retournée par la fonction server_info ou mysqli_get_server_info() est de la forme suivante :
Version du serveur MySQL: 8.0.21-MariaDB-log
Les valeurs possibles sont les suivantes :
- La version majeure du serveur MySQL
- La version mineure du serveur MySQL
- La version de patch du serveur MySQL
- Le nom de la branche du serveur MySQL
- Le nom du compilateur
- Les options de compilation
Paramètres
La fonction mysqli_get_server_info() ne prend qu'un seul paramètre, un objet mysqli. Ce paramètre est facultatif, car il est possible de le déduire de la variable GLOBALS["___mysqli_ston"], mais il est recommandé de l'expliciter pour plus de clarté.
Exemples
Style orienté objet
Exemple : 📋 Copier le code
<?php // Définit les paramètres de connexion $servername = "localhost"; $username = "my_user"; $password = "my_password"; // Crée un objet mysqli $mysqli = new mysqli($servername, $username, $password); // Récupère la version du serveur MySQL echo $mysqli->server_info; // Ferme la connexion $mysqli->close(); ?>
Style procédural
Exemple : 📋 Copier le code
<?php // Définit les paramètres de connexion $servername = "localhost"; $username = "my_user"; $password = "my_password"; // Connecte à la base de données $link = mysqli_connect($servername, $username, $password); // Récupère la version du serveur MySQL echo mysqli_get_server_info($link); // Ferme la connexion mysqli_close($link); ?>
Astuces et conseils
- La fonction server_info ou mysqli_get_server_info() est utile pour vérifier la version du serveur MySQL auquel un script est connecté.
- Cette fonction peut être utilisée pour afficher la version du serveur MySQL dans une interface utilisateur ou dans un fichier de log.
- Il est recommandé de vérifier la version du serveur MySQL avant d'exécuter des requêtes ou des transactions complexes.
Cas 1 : Afficher la version du serveur MySQL dans une interface utilisateur
Approche orientée objet
Exemple : 📋 Copier le code
<?php $servername = "localhost"; $username = "my_user"; $password = "my_password"; $mysqli = new mysqli($servername, $username, $password); $version = $mysqli->server_info; echo "Version du serveur MySQL : $version"; $mysqli->close(); ?>
Approche procédurale
Exemple : 📋 Copier le code
<?php $servername = "localhost"; $username = "my_user"; $password = "my_password"; $link = mysqli_connect($servername, $username, $password); $version = mysqli_get_server_info($link); echo "Version du serveur MySQL : $version"; mysqli_close($link); ?>
Cas 2 : Enregistrer la version du serveur MySQL dans un fichier de log
Approche orientée objet
Exemple : 📋 Copier le code
<?php $servername = "localhost"; $username = "my_user"; $password = "my_password"; $mysqli = new mysqli($servername, $username, $password); $version = $mysqli->server_info; file_put_contents("/var/log/mysql_version.log", $version); $mysqli->close(); ?>
Approche procédurale
Exemple : 📋 Copier le code
<?php $servername = "localhost"; $username = "my_user"; $password = "my_password"; $link = mysqli_connect($servername, $username, $password); $version = mysqli_get_server_info($link); file_put_contents("/var/log/mysql_version.log", $version); mysqli_close($link); ?>
Cas 3 : Vérifier la compatibilité avec une version spécifique de MySQL
Approche orientée objet
Exemple : 📋 Copier le code
<?php $servername = "localhost"; $username = "my_user"; $password = "my_password"; $mysqli = new mysqli($servername, $username, $password); $version = $mysqli->server_info; if (version_compare($version, "8.0.21", ">=")) { // La version est compatible } else { // La version n'est pas compatible } $mysqli->close(); ?>
Approche procédurale
Exemple : 📋 Copier le code
<?php $servername = "localhost"; $username = "my_user"; $password = "my_password"; $link = mysqli_connect($servername, $username, $password); $version = mysqli_get_server_info($link); if (version_compare($version, "8.0.21", ">=")) { // La version est compatible } else { // La version n'est pas compatible } mysqli_close($link); ?>