我有一个PHP脚本在等待MySQL数据库中的数据时运行一段时间。问题是,当客户端刷新浏览器时,这似乎不起作用,相反,它一直在等待...
下面的代码与循环
<?php
session_start();//i start the session here.
require_once('connections/connections.php');//mysql
function loop_to_get_more_data(){
global $con;
//checking number of connected friends in db...
$check=$con->query("SELECT numfriends FROM SUPERDATATABLE WHERE USERID=$_SESSION[USERID] AND numfriends>0");
if(mysqli_num_rows($check)>0){
//here i do more work and finally exit;
}else{
//loop again...
sleep(3);
loop_to_get_more_data();
return;//required to stop.
}
}loop_to_get_more_data();
exit;//after finshing everything...
现在您可以看到,代码可以正常运行,但是问题是,该循环迫使浏览器等待,直到服务器响应请求或当数据存在时退出循环
当客户端刷新浏览器时,浏览器将拒绝刷新自身,并且无论如何都保持相同的状态。
我在这里做错什么了?
我认为您正在寻找session_write_close();
功能
<?php
session_start();//please make note of this.
require_once('connections/connections.php');
//NOW CLOSE THE SESSION RIGHT BEFORE ENTERING THIS FUNCTION LOOP
session_write_close();//this does the magic.
function loop_to_get_more_data(){
global $con;
$check=$con->query("SELECT numfriends FROM SUPERDATATABLE WHERE USERID=$_SESSION[USERID] AND numfriends>0");
if(mysqli_num_rows($check)>0){
//more code if any;
}else{
sleep(3);
loop_to_get_more_data();
return;//required to stop.
}
}loop_to_get_more_data();
exit;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句