W3docs

get_proto_info

Saiba como usar mysqli_get_proto_info() em PHP para obter a versão do protocolo usado pela conexão MySQL.

A função mysqli_get_proto_info() retorna a versão do protocolo cliente/servidor MySQL utilizado por uma conexão aberta. O protocolo é o formato de comunicação de baixo nível que a extensão PHP MySQLi e o servidor MySQL usam para trocar pacotes — não é o mesmo que a versão do servidor MySQL (para isso, consulte mysqli_get_server_info()). Esta página aborda a sintaxe da função, seus parâmetros, valor de retorno e um exemplo executável, além de quando você realmente precisaria utilizá-la.

Sintaxe

A função existe tanto no estilo procedural quanto no orientado a objetos:

// Procedural style
mysqli_get_proto_info(mysqli $mysql): int

// Object-oriented style
$mysqli->protocol_version

Parâmetro

  • $mysql — um object de conexão MySQLi retornado por mysqli_connect() (apenas no estilo procedural).

Valor de retorno

Um int contendo a versão do protocolo. Para todos os servidores MySQL atuais, esse valor é 10, que corresponde ao protocolo introduzido no MySQL 3.x e ainda em uso hoje. O valor é uma propriedade da conexão, portanto você deve ter uma conexão aberta antes de chamá-lo.

Exemplo básico

A forma clássica de chamá-lo é em uma conexão ativa. Substitua as credenciais pelas suas:

<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");

if (!$mysqli) {
    die("Connection failed: " . mysqli_connect_error());
}

$proto_info = mysqli_get_proto_info($mysqli);

echo "Protocol version: " . $proto_info; // e.g. "Protocol version: 10"

mysqli_close($mysqli);
?>

Aqui abrimos uma conexão com mysqli_connect(), verificamos se foi bem-sucedida e, em seguida, passamos o object de conexão para mysqli_get_proto_info(). A função retorna um inteiro que imprimimos com echo.

Estilo orientado a objetos

Se você usar a API MySQLi orientada a objetos, leia a propriedade protocol_version do object de conexão em vez de chamar a função procedural — ambos retornam o mesmo valor:

<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    die("Connection failed: " . $mysqli->connect_error);
}

echo "Protocol version: " . $mysqli->protocol_version; // e.g. 10

$mysqli->close();
?>

Quando usar isso?

No código de aplicação do dia a dia, você quase nunca precisa da versão do protocolo. Ela é mais útil para:

  • Diagnósticos e logging — registrar metadados de conexão junto com mysqli_get_host_info() e mysqli_get_server_info() ao solucionar problemas em uma conexão instável.
  • Verificações de sanidade — confirmar que uma conexão foi realmente estabelecida antes de executar consultas, já que a chamada só retorna um valor significativo em um link aberto.

Para obter detalhes mais completos sobre a conexão, consulte estas funções relacionadas:

Conclusão

A função mysqli_get_proto_info() é uma forma simples de ler a versão inteira do protocolo (10 em servidores modernos) de uma conexão MySQLi ativa. Ela raramente é necessária na lógica cotidiana, mas continua sendo útil para diagnósticos, logging e para confirmar que sua aplicação está se comunicando com o banco de dados pelo protocolo esperado.

Prática

Prática
O que mysqli_get_proto_info() retorna?
O que mysqli_get_proto_info() retorna?
Was this page helpful?