У меня есть стол ArsehBaigany
с 10000000 записей,
и я хочу обновить все записи 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
не работает ? и видно только когда скрипт закончится?
Я хочу показать ошибку в режиме реального времени.
и как можно добавить к нему индикатор выполнения?
$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, потому что, насколько я знаю, вы не можете переписать эхо-сообщение в браузер.
Других решений пока нет …