我使用LOAD DATA INFILE
导入11M记录,然后脚本继续进行其他操作。导入需要10分钟,此时浏览器已经放弃(3分钟后),我看不到后续操作的进度。是否有一种方法可以在运行这个耗时的查询时定期向浏览器输出一些内容?Phpmyadmin似乎做这样的事情,浏览器不超时
查看flush() (http://php.net/manual/en/function.flush.php)或ob_flush() (http://www.php.net/manual/en/function.ob-flush.php)
基本上你正常地生成你的输出(在这种情况下是当前状态),然后强制服务器输出当前在缓冲区中的内容。
如果你的操作需要10分钟,你可能需要使用set_time_limit($seconds) (http://php.net/manual/en/function.set-time-limit.php),注意不要把它设置得太大,以防页面挂起。
如果您希望每10%(1分钟)输出一次状态,您可以在每次刷新后将超时重置为2分钟。这样,如果脚本超出了预期的运行时间,脚本就会超时。