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]` を使うことを推奨します。

警告

リンクリストは、巻き戻したり、再取得したりはできません。

### パラメータ

`link`
  手続き型のみ: mysqli_connect() あるいは mysqli_init() が返す mysqliオブジェクト。

### 戻り値

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("Error number: %s\n", $warning->errno);
                printf("Message: %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("Error number: %s\n", $warning->errno);
                printf("Message: %s\n", $warning->message);
            } while ($warning->next());
        }
    }

上の例の出力は以下となります。

    Error number: 1365
    Message: Division by 0
    Error number: 1292
    Message: Truncated incorrect INTEGER value: 'NULL'

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