对于那些感兴趣的人,这是我使用的:
<?php// Connection to query on$query_con = mysqli_connect($host, $user, $password, $name, $port);// Connection to kill on$kill_con = mysqli_connect($host, $user, $password, $name, $port);// Start the query$query_con->query($slow_query, MYSQLI_ASYNC);// Get the PID$thread_id = $query_con->thread_id;// Ignore user abort so we can kill the queryignore_user_abort(true);do { // Poll MySQL $links = $errors = $reject = array($mysqli->mysqli); $poll = mysqli_poll($links, $errors, $reject, 0, 500000); // Check if the connection is aborted and the query was killed if (connection_aborted() && mysqli_kill($kill_con, $thread_id)) { die(); }} while (!$poll);// Not aborted, so do stuff with the result$result = $link->reap_async_query();if (is_object($result)) { // Select while ($row = $result->fetch_object()) { var_dump($row); }} else { // Insert/update/delete var_dump($result);}


