W3docs

get_client_version

Aprende sobre la función mysqli_get_client_version() en PHP, que devuelve el número de versión de la biblioteca cliente de MySQL como entero.

La función mysqli_get_client_version() devuelve la versión de la biblioteca cliente de MySQL con la que se compiló tu instalación de PHP, codificada como un único entero. Esta página explica qué significa ese entero, cómo decodificarlo en una cadena de versión legible y cuándo vale la pena comprobarlo.

Qué hace la función

mysqli_get_client_version() es una función integrada de MySQLi. Informa la versión de la biblioteca cliente (como mysqlnd o libmysqlclient) que PHP utiliza para comunicarse con un servidor MySQL — no la versión del servidor MySQL en sí, ni tu versión de PHP.

Dos características la hacen conveniente:

  • No recibe argumentos y no requiere ninguna conexión abierta. Puedes llamarla antes de conectarte a cualquier base de datos, lo cual es útil en comprobaciones de inicio o diagnósticos de entorno.
  • Devuelve un entero, por lo que el valor es fácil de comparar numéricamente (por ejemplo, "¿es el cliente al menos la versión 8.0?").

Para inspeccionar la versión del servidor en su lugar, utiliza las funciones complementarias basadas en conexión que se enlazan al final de esta página.

Sintaxis

mysqli_get_client_version(): int

También existe un equivalente en estilo orientado a objetos en la clase mysqli:

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

Leer el entero

El entero no es un número de versión simple — empaqueta la versión principal, la secundaria y la subversión en un único valor con esta fórmula:

main_version * 10000 + minor_version * 100 + sub_version

Así, una biblioteca cliente en la versión 8.0.3 se reporta como 80003, y 8.3.0 se reporta como 80300. La siguiente sección muestra cómo convertir el entero bruto en una string legible.

Ejemplo básico

El uso más simple imprime el entero bruto:

<?php
$client_version = mysqli_get_client_version();

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

Para una versión de biblioteca cliente de 8.3.0, esto imprime:

MySQL client library version number: 80300

Decodificar en una versión legible

Dado que el entero bruto raramente es útil por sí solo, decodifícalo con aritmética entera simple:

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

Para un valor bruto de 80300, esto produce:

Client library version: 8.3.0

Cuándo usarla

  • Diagnósticos de inicio: registra la versión de la biblioteca cliente para que los tickets de soporte la incluyan sin necesidad de un viaje adicional al servidor.
  • Control de funcionalidades: algunas características de MySQLi dependen de la biblioteca cliente, por lo que puedes comparar numéricamente el entero antes de depender de ellas.
  • Verificación de compilación: confirma que una imagen desplegada fue compilada contra la biblioteca cliente que esperas (por ejemplo, mysqlnd en lugar de un libmysqlclient del sistema).

Errores comunes

  • No es la versión del servidor. Una biblioteca cliente moderna puede comunicarse con un servidor antiguo y viceversa; nunca infiereas las capacidades del servidor a partir de este valor.
  • Compara enteros, no strings. Dado que el formato tiene un ancho fijo aproximado pero no está rellenado con ceros para visualización, compara los enteros brutos ($version >= 80000) en lugar de analizar la string decodificada.
  • Estilo procedural vs. orientado a objetos. mysqli_get_client_version() es una función; la forma orientada a objetos es la propiedad $mysqli->client_version, sin paréntesis.

Conclusión

mysqli_get_client_version() te proporciona la versión de la biblioteca cliente de MySQL como un único entero codificado, sin necesidad de conexión. Decodifícalo con la fórmula major * 10000 + minor * 100 + sub cuando necesites una string legible, y recuerda que describe la biblioteca cliente — no el servidor de base de datos.

Funciones relacionadas

Práctica

Práctica
¿Qué devuelve mysqli_get_client_version()?
¿Qué devuelve mysqli_get_client_version()?
Was this page helpful?