我有一张包含10000000条记录的表ArsehBaigany
,
我想更新ArsehBaigany
的所有记录。
PHP代码:
$ArsehBaiganyRows=$dbHandle ->query("select from ArsehBaigany where code like '2'");
echo "<br>Start...<br/>";
$i=1;
foreach($ArsehBaiganyRows as $ArsehBaiganyRow)
{
$query="update ArsehBaigany
set Daste='183837732828',Noe='33992928487839002'
where
Code='".$ArsehBaiganyRow["code"]."' ";
$update=$dbHandle->query($query);
if(empty($update))
{
echo "<span style='color:red'>error".$i++."</span><br>".$query;
}
else
echo "ok";
//rename file
$fromFile= trim($ArsehBaiganyRow["ext"]) ;
$toFile=trim($uploadDir) ;
if(file_exists($fromFile) )
{
$renname= rename($fromFile, $toFile) ;
if($renname)
{
echo "ok ";
}
else
echo "<span style='color:red'>error</span>";
}
echo "<br/>next file<br/>";
flush();
}
echo "<br>finish<br/>";
脚本完成后,浏览器会自动关闭。
为什么echo
不起作用?并且仅在脚本完成时可见?
我想实时显示错误。 以及如何添加进度条?
答案 0 :(得分:0)
$ArsehBaiganyRows=$dbHandle ->query("select from ArsehBaigany where code like '2'");
if (ob_get_level() == 0)
ob_start();
echo "<br>Start...<br/>";
echo str_pad('', 4096);
ob_flush();
flush();
$i=1;
foreach($ArsehBaiganyRows as $ArsehBaiganyRow)
{
$query="update ArsehBaigany
set Daste='183837732828',Noe='33992928487839002'
where
Code='".$ArsehBaiganyRow["code"]."' ";
$update=$dbHandle->query($query);
if(empty($update))
{
echo "<span style='color:red'>error".$i++."</span><br>".$query;
echo str_pad('', 4096);
ob_flush();
flush();
}
else
{
echo "ok";
echo str_pad('', 4096);
ob_flush();
flush();
}
//rename file
$fromFile= trim($ArsehBaiganyRow["ext"]) ;
$toFile=trim($uploadDir) ;
if(file_exists($fromFile) )
{
$renname= rename($fromFile, $toFile) ;
if($renname)
{
echo "ok ";
echo str_pad('', 4096);
ob_flush();
flush();
}
else
{
echo "<span style='color:red'>error</span>";
echo str_pad('', 4096);
ob_flush();
flush();
}
}
echo "<br/>next file<br/>";
echo str_pad('', 4096);
ob_flush();
flush();
}
echo "<br>finish<br/>";
ob_end_flush();
对于进度条,您需要使用javascript,因为据我所知,您可以将回显消息重写到浏览器中。