Получает результат SHOW WARNINGS

# mysqli::get_warnings

# mysqli_get_warnings

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

mysqli::get_warnings -- mysqli_get_warnings — Получает результат SHOW WARNINGS

### Описание

Объектно-ориентированный стиль

public function mysqli::get_warnings(): mysqli_warning|false

Процедурный стиль

function mysqli_get_warnings(mysqli `$mysql`): mysqli_warning|false

Возвращает односвязный список, состоящий из объектов mysqli_warning или `false`, если предупреждений нет. Каждый объект в списке соответствует одной строке из результата `SHOW WARNINGS`. Вызов метода mysqli_warning::next() заполнит объект значениями из следующей строки.

> Замечание: Для получения предупреждающих сообщений рекомендуется использовать SQL-команду `SHOW WARNINGS [limit row_count]` вместо функции.

Внимание

Связанный список нельзя перемотать назад или восстановить снова.

### Список параметров

`mysql`
  Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect() или функция mysqli_init().

### Возвращаемые значения

Метод возвращает односвязный список, состоящий из объектов mysqli_warning или `false` если предупреждений нет.

### Примеры

Пример #1 Проход по связанному списку для извлечения всех предупреждений

Объектно-ориентированный стиль

    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    $mysqli->query("SELECT 1/0, CAST('NULL' AS UNSIGNED)");

    if ($mysqli->warning_count > 0) {
        $warning = $mysqli->get_warnings();
        if ($warning !== false) {
            do {
                printf("Номер ошибки: %s\n", $warning->errno);
                printf("Сообщение: %s\n", $warning->message);
            } while ($warning->next());
        }
    }

Процедурный стиль

    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect("localhost", "user", "password", "test");

    mysqli_query($link, "SELECT 1/0, CAST('NULL' AS UNSIGNED)");

    if (mysqli_warning_count($link) > 0) {
        $warning = mysqli_get_warnings($link);
        if ($warning !== false) {
            do {
                printf("Номер ошибки: %s\n", $warning->errno);
                printf("Сообщение: %s\n", $warning->message);
            } while ($warning->next());
        }
    }

Результат выполнения приведённых примеров:

    Номер ошибки: 1365
    Сообщение: Division by 0
    Номер ошибки: 1292
    Сообщение: Truncated incorrect INTEGER value: 'NULL'

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open