У меня есть PHP-скрипт, который вы можете загружать очень большие файлы (до 500 МБ), а содержимое файла хранится в базе данных MySQL. В настоящее время я делаю что-то вроде этого:Лучший способ хранения больших файлов в базе данных MySQL?
mysql_query("INSERT INTO table VALUES('')");
$uploadedfile = fopen($_FILES['file']['tmp_name'], 'rb');
while (!feof($uploadedfile)) {
$line = mysql_escape_string(fgets($uploadedfile, 4096));
mysql_query("UPDATE table SET file = CONCAT(file, '$line') WHERE something = something");
}
fclose($uploadedfile);
Это, конечно, чертовски много запросов sql.
я сделал это, а не что-то вроде
$file = file_get_contents($_FILES['file']['tmp_name']);
mysql_query("INSERT INTO table VALUES('$file')");
, потому что будет использовать много памяти однако файл был, и, казалось, лучше сделать больше SQL запросов, чем использовать 500 Мб памяти.
Однако должен быть лучший способ. Должен ли я идти вперед и делать это путь file_get_contents или есть лучший способ, чем CONCAT, или это то, как я делаю это теперь меньше всего зол?
Я нахожу это одновременно интересным и разочаровывающим, что всякий раз, когда задается вопрос о StackOverflow, гораздо больше говорят о том, как кто-то должен что-то делать, а что-то делать, чтобы делать то, что они просят. Ответчики должны представить альтернативы, и если они отвергнуты, попробуйте ответить на заданный вопрос. Не имеет значения, почему я должен это делать. Я пришел в StackOverflow, чтобы получить ответ на вопрос, но в основном я просто получаю комментарии о том, как я не должен этого делать. –
Если вы скажете: «Я хочу водить машину по автостраде с помощью только колесных дисков, без шин. Ответ, который даст вам большинство людей, это «Не надо». Если вы спросите, как сделать тупое дело с кодом, большинство разработчиков, которые знают их материал, ответят аналогичным образом. Это доброта, а не оскорбление. – curtisdf