W3docs

get_client_version

Découvrez mysqli_get_client_version() en PHP, qui retourne le numéro de version de la bibliothèque cliente MySQL sous forme d'entier encodé.

La fonction mysqli_get_client_version() retourne la version de la bibliothèque cliente MySQL contre laquelle votre installation PHP a été compilée, encodée sous forme d'un entier unique. Cette page explique ce que cet entier signifie, comment le décoder en une chaîne de version lisible, et dans quel cas cette valeur mérite d'être vérifiée.

Ce que fait la fonction

mysqli_get_client_version() est une fonction MySQLi intégrée. Elle indique la version de la bibliothèque cliente (telle que mysqlnd ou libmysqlclient) que PHP utilise pour communiquer avec un serveur MySQL — pas la version du serveur MySQL lui-même, et pas votre version de PHP.

Deux caractéristiques la rendent pratique :

  • Elle ne prend aucun argument et ne nécessite aucune connexion ouverte. Vous pouvez l'appeler avant de vous connecter à une base de données, ce qui est utile dans les vérifications de démarrage ou les diagnostics d'environnement.
  • Elle retourne un entier, donc la valeur est facile à comparer numériquement (par exemple, « la bibliothèque cliente est-elle au moins en version 8.0 ? »).

Pour inspecter la version du serveur à la place, utilisez les fonctions complémentaires basées sur la connexion, liées en bas de cette page.

Syntaxe

mysqli_get_client_version(): int

Il existe également un équivalent en style objet sur la classe mysqli :

$mysqli->client_version; // property, not a method call

Lire l'entier

L'entier n'est pas un simple numéro de version — il condense la version majeure, mineure et sous-version en une seule valeur selon cette formule :

main_version * 10000 + minor_version * 100 + sub_version

Ainsi, une bibliothèque cliente en version 8.0.3 est reportée comme 80003, et 8.3.0 comme 80300. La section suivante montre comment convertir cet entier brut en une chaîne lisible.

Exemple de base

L'utilisation la plus simple affiche l'entier brut :

<?php
$client_version = mysqli_get_client_version();

printf("MySQL client library version number: %d\n", $client_version);
?>

Pour une bibliothèque cliente en version 8.3.0, ceci affiche :

MySQL client library version number: 80300

Décoder en version lisible

Comme l'entier brut est rarement utile tel quel, décodez-le avec de simples opérations mathématiques sur les entiers :

<?php
$version = mysqli_get_client_version();

$major = (int) ($version / 10000);
$minor = (int) ($version % 10000 / 100);
$sub   = $version % 100;

printf("Client library version: %d.%d.%d\n", $major, $minor, $sub);
?>

Pour une valeur brute de 80300, ceci affiche :

Client library version: 8.3.0

Quand l'utiliser

  • Diagnostics au démarrage : journalisez la version de la bibliothèque cliente afin que les tickets de support l'incluent sans aller-retour supplémentaire vers le serveur.
  • Contrôle de fonctionnalités : quelques fonctionnalités MySQLi dépendent de la bibliothèque cliente, vous pouvez donc comparer numériquement l'entier avant de vous y fier.
  • Vérification de build : confirmez qu'une image déployée a été compilée contre la bibliothèque cliente attendue (par exemple mysqlnd plutôt qu'un libmysqlclient système).

Pièges courants

  • Ce n'est pas la version du serveur. Une bibliothèque cliente récente peut communiquer avec un serveur plus ancien et vice versa ; ne déduisez jamais les capacités du serveur à partir de cette valeur.
  • Comparez des entiers, pas des chaînes. Comme le format est de largeur fixe mais sans zéros de remplissage pour l'affichage, comparez les entiers bruts ($version >= 80000) plutôt que d'analyser la chaîne décodée.
  • Style procédural vs. objet. mysqli_get_client_version() est une fonction ; la forme objet est la propriété $mysqli->client_version, sans parenthèses.

Conclusion

mysqli_get_client_version() vous donne la version de la bibliothèque cliente MySQL sous forme d'un entier encodé unique, sans connexion requise. Décodez-le avec la formule major * 10000 + minor * 100 + sub lorsque vous avez besoin d'une chaîne lisible, et rappelez-vous qu'il décrit la bibliothèque cliente — pas le serveur de base de données.

Fonctions associées

Pratique

Pratique
Que retourne mysqli_get_client_version() ?
Que retourne mysqli_get_client_version() ?
Was this page helpful?