Я еще не нашел для этого решения. Я использовал memory_limit
для удаления ошибки, но он по-прежнему не вставляет все записи в базу данных. У меня 20K записей.
Вот ошибка, которую я получаю
Неустранимая ошибка: разрешенный размер памяти 134217728 байт исчерпан (пытался выделить 24 байта) в C:\xampp\htdoc\a\b\excel_reader.php в строке 1367
Любые идеи о том, как исправить это?
Здесь код:
ini_set('memory_limit', '512M');
$format_file = $_POST['fileexcel'];
$format_file = $_FILES['fileexcel']['tmp_name'];
if (strlen($format_file)<1){
echo "empty file";
exit();
}
$data = new Spreadsheet_Excel_Reader($format_file);
$result = $data->rowcount($sheet_index=0);
for ($i=2; $i<=$result; $i++){
$data1 = $data->val($i,1);
$data2 = $data->val($i,5);
$data3 = $data->val($i,10);
$q = mysql_query("INSERT INTO t (k,m,n) VALUES ('$data1','$data2','$data3')") or die(mysql_error());
if ($result) {
echo "success";
}
else {
echo "failed";
}
}
PHP имеет встроенное значение по умолчанию для таких параметров конфигурации.
В случае директивы memory-limit
это 128 МБ. Таким образом, вы используете его.