MySQLi
在线手册:中文 英文
PHP手册

mysqli::kill

mysqli_kill

(PHP 5)

mysqli::kill -- mysqli_killAsks the server to kill a MySQL thread

说明

面向对象风格

bool mysqli::kill ( int $processid )

过程化风格

bool mysqli_kill ( mysqli $link , int $processid )

This function is used to ask the server to kill a MySQL thread specified by the processid parameter. This value must be retrieved by calling the mysqli_thread_id() function.

To stop a running query you should use the SQL command KILL QUERY processid.

参数

link

仅以过程化样式:由 mysqli_connect()mysqli_init() 返回的链接标识。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE.

范例

Example #1 mysqli::kill() example

面向对象风格

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    
printf("Error: %s\n"$mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

过程化风格

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link$thread_id);

/* This should produce an error */
if (!mysqli_query($link"CREATE TABLE myCity LIKE City")) {
    
printf("Error: %s\n"mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

以上例程会输出:

Error: MySQL server has gone away

参见


MySQLi
在线手册:中文 英文
PHP手册
PHP手册 - N: Asks the server to kill a MySQL thread

用户评论:

johnjawed at gmail dot com (02-Dec-2004 09:34)

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.