W3docs

get_client_info

В этой статье рассматривается функция mysqli_get_client_info() в PHP, которая возвращает версию клиентской библиотеки MySQL.

Функция mysqli_get_client_info() возвращает версию клиентской библиотеки MySQL, с которой было скомпилировано расширение MySQLi. Здесь клиентская библиотека означает C-библиотеку (libmysqlclient или mysqlnd), которую PHP использует для взаимодействия с MySQL — это не браузер, не приложение и не сервер базы данных. На этой странице описан синтаксис, значение возвращаемого значения и отличия от связанных функций для сервера и версии клиента.

Что такое клиентская библиотека?

Когда PHP взаимодействует с MySQL, это происходит через низкоуровневую клиентскую библиотеку, скомпилированную в расширение MySQLi. На современных установках PHP это почти всегда mysqlnd (MySQL Native Driver), поставляемый вместе с PHP; старые или нестандартные сборки могут использовать libmysqlclient от Oracle. Функция mysqli_get_client_info() возвращает строку версии используемой библиотеки, например mysqlnd 8.1.0 или 8.0.30.

Это полезно для:

  • Отладки проблем с подключением, зависящих от используемого драйвера.
  • Логирования деталей окружения, чтобы отчёт об ошибке содержал точные сведения о сборке клиента.
  • Проверки совместимости, когда функция требует минимальной версии клиентской библиотеки.

Синтаксис

mysqli_get_client_info(?mysqli $mysql = null): string
ПараметрОписание
$mysqlНеобязательный. Дескриптор соединения, возвращаемый mysqli_connect() / new mysqli(). В современном PHP этот параметр игнорируется — значение берётся из скомпилированной библиотеки, а не из соединения, — но принимается для обратной совместимости.

Возвращаемое значение: string с описанием версии клиентской библиотеки MySQL. Для вызова функции соединение не требуется.

Процедурный пример

Поскольку функция читает значение, определяемое на этапе компиляции, активное соединение с базой данных не нужно:

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

Типичный вывод выглядит так (точная строка зависит от вашей сборки PHP):

MySQL client library version: mysqlnd 8.1.0

Объектно-ориентированный пример

MySQLi также предоставляет это значение через свойство client_info и метод 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();
?>

Клиентская библиотека, версия клиента и информация о сервере

Эти четыре функции легко перепутать:

  • mysqli_get_client_info() — версия клиентской библиотеки в виде string (например, mysqlnd 8.1.0).
  • mysqli_get_client_version() — та же версия клиентской библиотеки в виде упакованного целого числа (например, 80100), удобного для числовых сравнений.
  • mysqli_get_server_info() — версия сервера MySQL, к которому установлено соединение.
  • mysqli_get_host_info() — string с описанием типа соединения (хост, сокет и т. д.).

Если нужно лишь числовое сравнение «достаточно ли новая версия?», предпочтительнее использовать mysqli_get_client_version(). Функцию mysqli_get_client_info() применяйте, когда нужна читаемая метка для логов.

Заключение

mysqli_get_client_info() возвращает читаемую строку с версией клиентской библиотеки MySQL, скомпилированной в расширение MySQLi. Соединение не требуется; функция наиболее полезна для логирования и диагностики. Подробнее об открытии соединений см. mysqli_connect() и обзор MySQLi.

Практика

Практика
Что возвращает mysqli_get_client_info()?
Что возвращает mysqli_get_client_info()?
Was this page helpful?