делаю такую штучку:
ignore_user_abort(true);
set_time_limit(0);
$i=0;
conn();
$sql_dump="SELECT * FROM `dump` WHERE `id`='1'";
$res_dump=mysql_query($sql_dump);
if(!$res_dump||mysql_num_rows($res_dump)<1){$sql_dump2="INSERT INTO `dump` (`text`,`status`) VALUES ('Идет обновление базы данных...','yes')";}else{$sql_dump2="UPDATE `dump` SET `text`='Идет дамп...',`status`='yes' WHERE `id`='1'";}
$res_dump2=mysql_query($sql_dump2);
$r1='';$r2='';$r3='';$r4='';
$filename="csv.csv";
$handle = fopen("$filename", "r");
$count_rows=0;
$import='';
$error1='';
$error2='';
$error3='';
$error4='';
while (($data = fgetcsv($handle, 1000000, ";")) !== FALSE)
{
$count_rows++;
$oldperiod = strtotime($data[1]);
$newperiod = date('Y-m-d H:i:s', $oldperiod);
$olddate_create = strtotime($data[15]);
$newdate_create = date('Y-m-d H:i:s', $olddate_create);
$oldperiodmeter_reading = strtotime($data[13]);
$newperiodmeter_reading = date('Y-m-d H:i:s', $oldperiodmeter_reading);
if($data[2]!=''){
$sql0="SELECT * FROM `balans` WHERE `period`='$newperiod' AND `idn`='$data[2]'";
$res0=mysql_query($sql0);
if(!$res0||mysql_num_rows($res0)<1){$importone="INSERT INTO `balans`(`idn`, `period`, `start_saldo`, `earn_m`, `earn_r`, `pay`, `finish_saldo`) VALUES ('$data[2]', '$newperiod', '$data[5]', '$data[7]', '$data[6]', '$data[8]', '$data[9]')";}
else{$importone="UPDATE `balans` SET `start_saldo` = '$data[5]', `earn_m` = '$data[7]', `earn_r` = '$data[6]', `pay` = '$data[8]', `finish_saldo` = '$data[9]' WHERE `idn` ='$data[2]' AND `period`='$newperiod'";}
$res_importone=mysql_query($importone) or die(mysql_error($res_importone));
$sql0e="SELECT * FROM `equipment` WHERE `idn`='$data[2]'";
$res0e=mysql_query($sql0e);
if(!$res0e||mysql_num_rows($res0e)<1){if($data[10]!='0'){$importtwo="INSERT INTO `equipment`(`idn`, `type`, `model`, `date_create`, `serial_number`, `date_of_sealing`, `seal_number`, `state`) VALUES ('$data[2]', '', '$data[11]', '$newdate_create', '$data[12]', '', '', '')";$res_importtwo=mysql_query($importtwo) or die(mysql_error($res_importtwo));}}
else{$importtwo="UPDATE `equipment` SET `type`='',`model`='$data[11]',`date_create`='$newdate_create',`serial_number`='$data[12]',`date_of_sealing`='', `seal_number`='',`state`=''";$res_importtwo=mysql_query($importtwo) or die(mysql_error($res_importtwo));}
$sqlimport_meter_reading="SELECT * FROM `meter_reading` WHERE `value` = '$data[14]' AND `period`='$newperiodmeter_reading' AND `idn`='$data[2]'";
$resimport_meter_reading=mysql_query($sqlimport_meter_reading);
if(!$resimport_meter_reading||mysql_num_rows($resimport_meter_reading)<1)
{if($data[10]=='1'&&$data[13]!=''){$importtree="INSERT INTO `meter_reading`(`idn`, `period`, `value`, `pay_type`) VALUES ('$data[2]', '$newperiodmeter_reading', '$data[14]', '$data[10]')";$res_importtree=mysql_query($importtree) or die(mysql_error($res_importtree));
}}
$sql="SELECT * FROM `user_info` WHERE `account` = '$data[2]'";
$res=mysql_query($sql);
if(!$res||mysql_num_rows($res)<1)
{$importfour="INSERT INTO `user_info`(`fio`, `account`, `living_space`, `occupancy`, `adress`, `telefone`, `mobile`, `email`, `icq`, `password`, `password_temp`, `status`) VALUES ('".mysql_real_escape_string($data[3])."', '$data[2]', '', '', '$data[4]', '', '', '', '', '', '', 'user')";}
else{$importfour="UPDATE `user_info` SET `fio` = '$data[3]', `adress` = '$data[4]' WHERE `account` ='$data[2]'";}
$res_importfour=mysql_query($importfour) or die(mysql_error($res_importfour));
}$i++; echo $i.'<br>';
}
скрипт обрабатывает файл до 2187 строки и останавливается,
т.е. просто пишет цифры в ряд до 2187:
1
2
3
....
2187
а почему понять пока не могу...
кто знает в чем может быть причина?
P.S.: смотрел логи сервера, ошибок нет.
P.P.S.: код конечно слишком накрученный, но по-другому никак...