mysqli::kill

mysqli_kill

(PHP 5, PHP 7, PHP 8)

mysqli::kill -- mysqli_kill Запрос для сервера завершить выполнение процесса MySQL

Описание

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

public mysqli::kill(int $process_id): bool

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

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.

Примеры

Пример #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 процесса текущего подключения

add a note add a note

User Contributed Notes 1 note

up
1
johnjawed at gmail dot com
19 years ago
Be careful using this before mysqli::close.

Killing the thread before actually closing the connection will leave the connection open! And depending on your max_connections and max_user_connections (by default the same), this could result in a "Max connections reached for **** user" message.
To Top