PHP Conference Japan 2024

mysqli::$thread_id

mysqli_thread_id

(PHP 5, PHP 7, PHP 8)

mysqli::$thread_id -- mysqli_thread_id傳回目前連線的執行緒 ID

說明

物件導向風格

程序式風格

mysqli_thread_id(mysqli $mysql): int

函式 mysqli_thread_id() 會傳回目前連線的執行緒 ID,之後可以使用 mysqli_kill() 函式將其終止。如果連線中斷,並且您使用 mysqli_ping() 重新連線,執行緒 ID 將會不同。因此,您應該只在需要時才取得執行緒 ID。

注意事項:

執行緒 ID 是依連線個別指派的。因此,如果連線中斷並重新建立,則會指派新的執行緒 ID。

要終止正在執行的查詢,您可以使用 SQL 指令 KILL QUERY processid

參數

mysql

僅限程序式風格:由 mysqli_connect()mysqli_init() 傳回的 mysqli 物件

回傳值

傳回目前連線的執行緒 ID。

範例

範例 #1 $mysqli->thread_id 範例

物件導向風格

<?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

另請參閱

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top