MySQL veritabanında büyük dosyaları depolamak için daha iyi bir yolu?

0 Cevap php

Size (500MB kadar) çok büyük dosyaları yükleyebilirsiniz bir PHP komut dosyası var, ve dosyanın içeriği MySQL veritabanında saklanır. Şu anda böyle bir şey yapın:

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);

Bu tabii sql sorguları kanlı bir sürü yok.

Ben oldukça gibi bir şey daha yaptı

$file = file_get_contents($_FILES['file']['tmp_name']);
mysql_query("INSERT INTO table VALUES('$file')");

because that would use up however much memory the file was, and it seemed better to do more sql queries than to use 500 mb of memory.
However, there must be a better way. Should I go ahead and do it the file_get_contents way or is there a better way than CONCAT, or is the way I'm doing it now the lesser of all evils?

0 Cevap