Heim >Backend-Entwicklung >PHP-Tutorial >数据库操作延时有关问题

数据库操作延时有关问题

WBOY
WBOYOriginal
2016-06-13 10:21:38987Durchsuche

数据库操作延时问题

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->        echo "<script language="JavaScript">alert('数据检测已完成!');</script>";        echo "<script language="JavaScript">location.href='pmf_rkno_query.php'</script>";        sleep(10);        mysql_query("delete from `".$p."` where rkno = '".$rkno."'");    


我的想法是返回对应页面后再进行数据库删除操作。现在代码的效果是等待10秒,删除数据,但是还是停留在当前页。请问哪里出了问题?

------解决方案--------------------
可能是服务器缓存了输出
flush(); // 清除缓存
sleep(10);
------解决方案--------------------
flush(); // 推出缓存
这是必要的,对于ie兼容浏览器还需发送累计256字节以上内容才会被执行,除非程序结束

不过你的这个写法存在风险
一旦
被执行,就相当于用户终止了当前程序的连接,而php默认会终止当前程序的执行,你的
 mysql_query("delete from `".$p."` where rkno = '".$rkno."'"); 
也就没有机会执行了
------解决方案--------------------
加上这些呢???另外不同浏览器是有差异的,,chrome就不一定行得通
ini_set('output_buffering','on');
ini_set('zlib.output_compression', 0);

echo "";
echo str_pad(" ", 1024);
ob_flush();
flush();
sleep(10);
mysql_query("delete from `".$p."` where rkno = '".$rkno."'"); 
……
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn