This is how you can test and terminate slow query with polling.
<?php
$SelectSql = 'SELECT * FROM SLOW_QUERY';
$link = mysqli_connect('localhost','user','pass','database');
mysqli_query($SelectSql, MYSQLI_ASYNC);
$thread_id = mysqli_thread_id($link);
ignore_user_abort(true);
$MaxTime = 5; $Overtime = false;
$StartTime = time();
do
{
$links = $errors = $reject = array($link);
$poll = mysqli_poll($links, $errors, $reject, 0, 500000);
if (connection_aborted() && mysqli_kill($link, $thread_id)) {
die();
}
$EndTime = time();
if ($EndTime - $StartTime > $MaxTime)
{
mysqli_kill($link, $thread_id);
$Overtime = true;
echo 'Error: Query took over '.$Overtime.'.';
}
} while (!$poll && $Overtime == false);
?>