[PHP-users 27214] Re: ブラウザのタイムアウトを回避できません

clockwork-toy@flashmail.com clockwork-toy @ flashmail.com
2005年 10月 13日 (木) 22:17:01 JST


素人考えなのですが、バックアップ用のPHPは

foreach ($table as $name) {
	setcookie($name,0,time()+120);
}
header("location ./check.php");
$SQL = "";
$path = dirname(__FILE__);
foreach ($table as $name) {
	$SQL .= "copy $name to {$path}/{$name}.txt using delimiters ',';";
}
do_sql($SQL);

とSQL命令を投げるだけして、check.phpで

$fsize = array();
$biffer = "";
$endFlag = true;
clearstatcache();
foreach ($table as $name) {
	$fsize[$name] = filemtime($name.".txt");
	setcookie($name,$fsize[$name],time()+120);
	if ($_COOKIE[$name] == $fsize[$name]){
		$buffer .= "「"  . $name . "」のバックアップは終わりました。<BR>";
	} else {
		$buffer .= "「"  . $name . "」のバックアップファイル作成中です。<BR>";
		$endFlag = false;
	}
}
$cycle = 60;//更新周期
echo ($endFlag) $buffer : "<HEAD><META http-eqiuv=\"Refresh\" content=\"{$Cycle}\"></HEAD>".$buffer;

まあたとえばですけど進展具合を表示するとかじゃだめでしょうか。
copyが使えるかとか、PHPの実行が途中で止まったらSQLはどんな反応をするかとかいろいろ問題はありますけど



PHP-users メーリングリストの案内