Tôi có mã tìm kiếm một cái gì đó như thế này:Làm thế nào để xây dựng lớn truy vấn MySQL INSERT trong PHP mà không lãng phí bộ nhớ
$data = file_get_contents($tempFile); // perhaps 30MB of file data, now in PHP's memory
$hash = md5($data);
$query = "INSERT INTO some_table
SET BlobData = '" . mysql_real_escape_string($data) . "',
BlobHash = '$hash'
";
mysql_query($query);
Tôi biết điều này không phải là rất hiệu quả như từng '' các toán tử sẽ tái phân bổ một khối bộ nhớ lớn hơn và chuỗi 30MB sẽ được sao chép nhiều lần.
Có điều gì hiệu quả hơn giải pháp sau không?
$data = file_get_contents($tempFile); // perhaps 30MB of file data, now in PHP's memory
$hash = md5($data);
$query = "INSERT INTO some_table SET BlobData = '%s', BlobHash = '$hash'";
mysql_query(sprintf($query, mysql_real_escape_string($data)));
Vấn đề với PDO là nó chỉ mô phỏng các câu lệnh đã chuẩn bị nếu bạn không có thư viện mysqli. Vì vậy, tất cả điều này làm là di chuyển các concatenate vào thư viện PDO. – jmucchiello