oujood.com

Comment récupérer la version du serveur MySQL avec PHP ?

Cet article explique comment récupérer la version du serveur MySQL avec la fonction server_info ou mysqli_get_server_info() en PHP.
Cette fonction est utile pour vérifier la version du serveur MySQL avant d'exécuter des requêtes ou des transactions complexes.

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);
?>

Voir aussi nos tutoriel :

PHP Les boucles while et do while

PHP Les boucles while et do while

:first-child

Ajoute un style à un élément qui est le premier enfant d'un autre élément

L'Attribut contenteditable

Spécifie si le contenu d'un élément est modifiable ou non