get_client_info
Guida alla funzione mysqli_get_client_info() in PHP per ottenere la versione della libreria client MySQL con sintassi ed esempi pratici.
La funzione mysqli_get_client_info() restituisce la versione della libreria client MySQL con cui è stata compilata l'estensione MySQLi. In questo contesto, libreria client indica la libreria C (libmysqlclient o mysqlnd) che PHP utilizza per comunicare con MySQL — non il browser, l'applicazione o il server del database. Questa pagina illustra la sintassi, il significato del valore restituito e le differenze rispetto alle funzioni correlate per il "server" e la "versione client".
Cos'è la libreria client?
Quando PHP comunica con MySQL, lo fa attraverso una libreria client di basso livello compilata nell'estensione MySQLi. Nelle installazioni PHP moderne si tratta quasi sempre di mysqlnd (il MySQL Native Driver), che viene distribuito insieme a PHP stesso; versioni più vecchie o build personalizzate possono usare libmysqlclient di Oracle. mysqli_get_client_info() riporta la string di versione di quella in uso, ad esempio mysqlnd 8.1.0 o 8.0.30.
Questo è utile per:
- Debug dei problemi di connessione che dipendono dal driver in uso.
- Registrazione dei dettagli dell'ambiente in modo che una segnalazione di bug includa la build esatta del client.
- Verifica della compatibilità quando una funzionalità richiede una versione minima della libreria client.
Sintassi
mysqli_get_client_info(?mysqli $mysql = null): string| Parametro | Descrizione |
|---|---|
$mysql | Opzionale. Un collegamento di connessione restituito da mysqli_connect() / new mysqli(). Questo parametro viene ignorato nelle versioni moderne di PHP — il valore proviene dalla libreria compilata, non dalla connessione — ma è accettato per compatibilità con le versioni precedenti. |
Valore restituito: una string che descrive la versione della libreria client MySQL. Non è necessaria alcuna connessione per chiamarla.
Esempio procedurale
Poiché la funzione legge un valore definito in fase di compilazione, non è necessaria nemmeno una connessione attiva al database:
<?php
// No connection needed — this reflects the library PHP was built with
$client_info = mysqli_get_client_info();
printf("MySQL client library version: %s\n", $client_info);
?>Un output tipico è simile a questo (la string esatta dipende dalla build di PHP):
MySQL client library version: mysqlnd 8.1.0Esempio orientato agli oggetti
MySQLi espone questo valore anche attraverso la proprietà client_info e il metodo mysqli::get_client_info():
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_errno) {
die("Connection failed: " . $mysqli->connect_error);
}
// Both lines print the same value
echo $mysqli->client_info . "\n";
echo $mysqli->get_client_info() . "\n";
$mysqli->close();
?>Libreria client vs. versione client vs. informazioni server
Queste quattro funzioni sono facili da confondere:
mysqli_get_client_info()— la versione della libreria client come string (es.mysqlnd 8.1.0).mysqli_get_client_version()— la stessa versione della libreria client come intero compresso (es.80100), comodo per confronti numerici.mysqli_get_server_info()— la versione del server MySQL a cui si è connessi.mysqli_get_host_info()— una string che descrive il tipo di connessione (host, socket, ecc.).
Se è sufficiente un controllo numerico del tipo "questa versione è abbastanza recente?", preferire mysqli_get_client_version(). Usare mysqli_get_client_info() quando si desidera un'etichetta leggibile dall'uomo per i log.
Conclusione
mysqli_get_client_info() restituisce una string leggibile dall'uomo per la libreria client MySQL compilata nell'estensione MySQLi. Non richiede una connessione ed è più utile per il logging e la diagnostica. Per ulteriori informazioni sull'apertura delle connessioni, vedere mysqli_connect() e la panoramica su MySQLi.