(PHP 5、PHP 7、PHP 8)
mysqli::kill -- mysqli_kill — 请求服务器杀死一个 MySQL 线程
此函数自 PHP 8.4.0 起已弃用。强烈建议不要依赖此函数。
面向对象风格
过程化风格
此函数用于请求服务器杀死由 process_id
参数指定的 MySQL 线程。此值必须通过调用 mysqli_thread_id() 函数来获取。
要停止正在运行的查询,应使用 SQL 命令 KILL QUERY processid
。
如果启用了 mysqli 错误报告 (MYSQLI_REPORT_ERROR
) 并且请求的操作失败,则会生成警告。此外,如果模式设置为 MYSQLI_REPORT_STRICT
,则会抛出 mysqli_sql_exception。
版本 | 描述 |
---|---|
8.4.0 | mysqli::kill() 和 mysqli_kill() 现已弃用。请改用 KILL SQL 命令。 |
示例 #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