我的网站正在使用onload AJAX。所以当用户进入页面时,8个AJAX调用是并行执行的。在流程的中间,如果用户关闭浏览器或导航到另一个页面,我想要终止查询。
实现这一目标的步骤:
1。找到下一个MySQL查询执行ID(连接标识符)并将其存储到会话中。
http://dev.mysql.com/doc/refman/5.1/en/show-processlist.html
我们需要在执行READ(select)查询之前识别此ID。因为PHP会逐行执行。
问题
How do we identify the next connection identifier?
OR
How do we reserve the connection identifier and execute the query on specified identifier?
2 即可。在数据库中执行查询。
3. 如果识别出用户已中止,则终止执行MySQL查询。我们可以使用connection_aborted()/ ignore_user_abort()函数在PHP中检测用户中止状态。
使用以下命令终止此查询执行:
KILL ID
答案 0 :(得分:3)
第1步:获取MySql连接的线程ID
$thread_id = mysqli_thread_id($link);
第2步:使用ignore_user_abort();在代码中
步骤3:检查连接是否已关闭。如果是,则按如下方式终止该线程:
if (connection_aborted() && mysqli_kill($connection_link, $thread_id)) {
die();
}
检查已接受的this question解决方案。
答案 1 :(得分:1)
以下查询还返回当前连接标识符
SELECT CONNECTION_ID();
收到此连接标识符后,我们可以对此标识符执行查询。