2016-10-20 31 views
0

有沒有辦法獲得由PHP mysqli_query或PDO發佈的查詢進程ID?如何獲得PHP執行的MySQL查詢進程ID

樣品..

$result = mysqli_query("SELECT * FROM table"); 

而且我想要得到的是特定查詢的進程ID。如果任何人有想法如何解決這個問題,我會非常感激。謝謝你!

回答

1

我不知道你的意思「進程id」是什麼,但如果你想獲得當期的MySQL連接的線程ID,你可以做到這一點有:

MySQLi的面向對象的風格:

/* MySQL thread id */ 
$thread_id = $mysqli->thread_id; 

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

MySQLi的程序風格:

/* MySQL thread id */ 
$thread_id = mysqli_thread_id($mysqli); 

/* Kill connection */ 
mysqli_kill($mysqli, $thread_id); 

使用MySQL來獲取線程ID一般:

$query = "SELECT CONNECTION_ID()"; 

它不象每一個查詢都有自己的「過程」。每連接有。只要你不關閉連接,每個查詢的線程ID將保持不變。

+0

如果查詢需要時間才能完成,我可以根據線程ID進行連續檢查嗎?我的目標是殺死正在運行的查詢,如果它需要很長時間... – victor

+0

@victor我不是具有足夠的unix能力的formilliar,知道這是否可能。據我所知,無法檢查查詢是否仍在運行。你只能檢查它是否成功。你可以使用[usleep()](http://php.net/manual/en/function.usleep.php)構建一個定時器,在啓動查詢後延遲PHP執行時間,並在x值後終止線程ID秒。 – icecub

+0

有一個想法,感謝您的幫助! – victor