我使用fopen,fwrite和fclose來重寫文件。當我重新寫入一個50MB的大文件時,文件將成功重寫,但fclose後面的sql語句不會執行,並且底部的回顯也不會執行。 sql對20MB文件執行fopen fwrite大文件後SQL不會執行
任何想法?
set_time_limit(10000);
if (!file_exists($filename)) {
echo "file missing";
}
else{
$fr = fopen($filename, "r");
$file = "";
$file = fgets($fr, 4096);
while(!feof($fr)){
//read from file
$file =str_replace("\r","",$file);
$file =str_replace("\n","",$file);
$file =str_replace("~","",$file);
//write to file
$fw = fopen($tempfile, "a") or die("Couldn't create new file");
fwrite($fw, $file);
$file = fgets($fr, 4096);
}
fclose($fw);
fclose($fr);
//set status to 5
$update_stmt = $mysqli->prepare("Update bs_uploads set UploadStatus=5 where
UploadNewFilename=?");
$update_stmt->bind_param("s", $original_filename);
$update_stmt->execute();
echo "finished";
}
您確定在大文件上運行時間不超過10秒嗎?你有'set_time_limit(10000);'你有沒有嘗試增加? –
時間限制爲10000秒,無論文件大小如何,文件都完全重寫,只是sql後不加 – JoeyA
嘗試添加'error_reporting(E_ALL); ini_set('display_errors',1);'作爲代碼的前兩行,查看是否有任何報告。 –