Перейти к содержимому

errno

В этой статье мы рассмотрим функцию mysqli_errno() в PHP, которая возвращает числовой код ошибки для последней операции MySQLi. Мы предоставим обзор функции, принцип её работы и практические примеры.

Введение в функцию mysqli_errno()

Функция mysqli_errno() — это встроенная функция PHP, возвращающая числовой код ошибки для последней операции MySQLi. Она полезна, когда необходимо обрабатывать ошибки в коде MySQLi и предпринимать соответствующие действия на основе возвращённого кода.

Как использовать функцию mysqli_errno()

Использование функции mysqli_errno() довольно просто. В качестве параметра она принимает валидный объект подключения MySQLi. Вот пример:

Как использовать функцию mysqli_errno()?

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

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

$query = "SELECT * FROM my_table";
$result = mysqli_query($mysqli, $query);

if (!$result) {
    $error_code = mysqli_errno($mysqli);
    echo "Failed to execute query. Error code: " . $error_code;
    exit();
}

mysqli_close($mysqli);
?>

В этом примере мы сначала проверяем успешность подключения. Затем выполняем запрос с помощью функции mysqli_query() и сохраняем результат в переменную. Мы проверяем наличие ошибки в запросе с помощью условия !$result. Если ошибка возникла, мы вызываем mysqli_errno($mysqli), чтобы получить числовой код ошибки, связанный с последней операцией MySQLi. После этого выводим код ошибки и завершаем скрипт.

Расширенное использование

Функцию mysqli_errno() можно также использовать в более сложных сценариях. При работе с несколькими подключениями необходимо передать функции конкретный объект MySQLi, чтобы получить код ошибки именно для этого подключения. Вот пример:

Расширенное использование PHP mysqli_errno()

php
<?php
$mysqli1 = mysqli_connect("localhost", "username", "password", "database1");
$mysqli2 = mysqli_connect("localhost", "username", "password", "database2");

if (!$mysqli1 || !$mysqli2) {
    die("One or more connections failed.");
}

$query = "SELECT * FROM my_table";
$result1 = mysqli_query($mysqli1, $query);
$result2 = mysqli_query($mysqli2, $query);

if (!$result1) {
    $error_code = mysqli_errno($mysqli1);
    echo "Failed to execute query on connection 1. Error code: " . $error_code;
    exit();
}

if (!$result2) {
    $error_code = mysqli_errno($mysqli2);
    echo "Failed to execute query on connection 2. Error code: " . $error_code;
    exit();
}

mysqli_close($mysqli1);
mysqli_close($mysqli2);
?>

В этом примере мы создаём два объекта MySQLi и подключаемся к двум разным базам данных MySQL. Затем мы выполняем один и тот же запрос с помощью каждого подключения и сохраняем результат в переменную. Мы проверяем наличие ошибки в каждом запросе с помощью условия !$result. Если ошибка возникла, мы вызываем mysqli_errno() для соответствующего объекта MySQLi, чтобы получить код ошибки, связанный с этим конкретным подключением. После этого выводим код ошибки и завершаем скрипт.

Примечание: mysqli_errno() возвращает только числовой код. Чтобы получить сообщение об ошибке, понятное человеку, используйте вспомогательную функцию mysqli_error($mysqli). К распространённым кодам ошибок MySQL относятся 1045 (Доступ запрещён) и 1049 (База данных не найдена). Полный список см. в официальной документации по кодам ошибок MySQL.

Заключение

Подводя итог, функция mysqli_errno() — это полезный инструмент для обработки ошибок в коде MySQLi и предпринятия соответствующих действий на основе возвращённого кода. Проверяя подключения, передавая правильный объект подключения и интерпретируя числовые коды, вы сможете создавать более надёжные и гибкие запросы MySQLi.

Практика

Что делает функция errno в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.