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.