Просит сервер завершить MySQL-поток

# mysqli::kill

# mysqli_kill

(PHP 5, PHP 7, PHP 8)

mysqli::kill -- mysqli_kill — Просит сервер завершить MySQL-поток

Внимание

Начиная с PHP 8.4.0 функция УСТАРЕЛА. Полагаться на функцию настоятельно не рекомендуют.

### Описание

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

#[\Deprecated]
public function mysqli::kill(int `$process_id`): bool

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

#[\Deprecated]
function mysqli_kill(mysqli `$mysql`, int `$process_id`): bool

Функция отправляет на сервер запрос на завершение MySQL-потока с идентификатором, который указали в аргументе `process_id`. Значение идентификатора получают функцией mysqli_thread_id().

Работу текущего запроса останавливают SQL-командой `KILL QUERY processid`.

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

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

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

Функция возвращает `true`, если выполнилась успешно, или `false`, если возникла ошибка.

### Ошибки

Если уведомления об ошибках mysqli включены (`MYSQLI_REPORT_ERROR`) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим `MYSQLI_REPORT_STRICT`, вместо этого будет выброшено исключение mysqli_sql_exception.

### Список изменений

Версия | Описание
--- | ---
8.4.0 | Метод mysqli::kill() и функция mysqli_kill() устарели. Вместо них рекомендуют выполнять SQL-команду `KILL`.

### Примеры

Пример #1 Пример уничтожения потока методом mysqli::kill()

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

    <?php

    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    /* Проверка соединения */
    if (mysqli_connect_errno()) {
        printf("Не удалось подключиться: %s\n", mysqli_connect_error());
        exit();
    }

    /* Определение id процесса */
    $thread_id = $mysqli->thread_id;

    /* Убиваем соединение */
    $mysqli->kill($thread_id);

    /* Это вызовет ошибку */
    if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
        printf("Ошибка: %s\n", $mysqli->error);
        exit;
    }

    /* Закрываем соединение */
    $mysqli->close();

    ?>

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

    <?php

    $link = mysqli_connect("localhost", "my_user", "my_password", "world");

    /* Проверка соединения */
    if (mysqli_connect_errno()) {
        printf("Не удалось подключиться: %s\n", mysqli_connect_error());
        exit();
    }

    /* Опредеение id процесса */
    $thread_id = mysqli_thread_id($link);

    /* Убиваем соединение */
    mysqli_kill($link, $thread_id);

    /* Это вызовет ошибку */
    if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
        printf("Ошибка: %s\n", mysqli_error($link));
        exit;
    }

    /* Закрываем соединение */
    mysqli_close($link);

    ?>

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

    Error: MySQL server has gone away

### Смотрите также

- mysqli_thread_id() - Возвращает ID потока текущего подключения

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