get_client_version
Scopri la funzione mysqli_get_client_version() in PHP, che restituisce la versione della libreria client MySQL come numero intero.
La funzione mysqli_get_client_version() restituisce la versione della libreria client MySQL con cui è stato compilato PHP, codificata come un singolo intero. Questa pagina spiega cosa significa tale intero, come decodificarlo in una stringa di versione leggibile e quando vale la pena verificare questo valore.
Cosa fa la funzione
mysqli_get_client_version() è una funzione MySQLi integrata. Riporta la versione della libreria client (come mysqlnd o libmysqlclient) che PHP utilizza per comunicare con un server MySQL — non la versione del server MySQL stesso, e nemmeno la versione di PHP.
Due caratteristiche la rendono pratica:
- Non richiede argomenti e non necessita di nessuna connessione aperta. Puoi chiamarla prima di connetterti a qualsiasi database, il che è utile nei controlli di avvio o nella diagnostica dell'ambiente.
- Restituisce un intero, quindi il valore è facile da confrontare numericamente (ad esempio, "la libreria client è almeno alla versione 8.0?").
Per ispezionare la versione del server, utilizza invece le funzioni companion basate sulla connessione, disponibili in fondo a questa pagina.
Sintassi
mysqli_get_client_version(): intEsiste anche un equivalente in stile oggetto sulla classe mysqli:
$mysqli->client_version; // property, not a method callLeggere l'intero
L'intero non è un semplice numero di versione — racchiude la versione principale, quella secondaria e la sotto-versione in un unico valore con questa formula:
main_version * 10000 + minor_version * 100 + sub_versionQuindi una libreria client alla versione 8.0.3 viene riportata come 80003, e 8.3.0 come 80300. La sezione successiva mostra come trasformare l'intero grezzo in una stringa leggibile.
Esempio di base
L'utilizzo più semplice stampa l'intero grezzo:
<?php
$client_version = mysqli_get_client_version();
printf("MySQL client library version number: %d\n", $client_version);
?>Per una versione della libreria client 8.3.0, questo stampa:
MySQL client library version number: 80300Decodificare in una versione leggibile
Poiché l'intero grezzo è raramente utile da solo, decodificalo con semplici operazioni aritmetiche sui numeri interi:
<?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);
?>Per un valore grezzo di 80300, questo produce:
Client library version: 8.3.0Quando usarla
- Diagnostica all'avvio: registra la versione della libreria client in modo che i ticket di assistenza la includano senza un ulteriore accesso al server.
- Controllo delle funzionalità: alcune funzionalità di MySQLi dipendono dalla libreria client, quindi puoi confrontare numericamente l'intero prima di affidarti a esse.
- Verifica della build: conferma che un'immagine distribuita sia stata compilata con la libreria client attesa (ad es.
mysqlndanziché unalibmysqlclientdi sistema).
Errori comuni
- Non è la versione del server. Una libreria client moderna può comunicare con un server più vecchio e viceversa; non dedurre mai le capacità del server da questo valore.
- Confronta interi, non stringhe. Poiché il formato ha larghezza fissa ma non è zero-padded per la visualizzazione, confronta gli interi grezzi (
$version >= 80000) anziché analizzare la stringa decodificata. - Stile procedurale vs. stile oggetto.
mysqli_get_client_version()è una funzione; la forma ad oggetto è la proprietà$mysqli->client_version, senza parentesi.
Conclusione
mysqli_get_client_version() fornisce la versione della libreria client MySQL come un singolo intero codificato, senza richiedere alcuna connessione. Decodificalo con la formula major * 10000 + minor * 100 + sub quando hai bisogno di una stringa leggibile, e ricorda che descrive la libreria client — non il server del database.
Funzioni correlate
- mysqli_get_client_info() — la versione della libreria client come stringa leggibile.
- mysqli_get_server_version() — la versione del server (connessione richiesta).
- mysqli_get_server_info() — la versione del server come stringa.
- mysqli_get_host_info() — il tipo di connessione e i dettagli dell'host.