欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 存儲文件在 數據讀取0

吉茹定2年前12瀏覽0評論

MySQL 是一個廣泛使用的開源關系型數據庫管理系統,除了普通的文本數據外,MySQL 還可以直接存儲文件。本文將介紹如何在 MySQL 中存儲文件以及如何從數據庫中讀取文件。

文件存儲的方法如下:

CREATE TABLE file_table (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
file_name VARCHAR(255),
file_data LONGBLOB
);

上述 SQL 語句創建了一個名為 file_table 的表,其中包含三個字段:id 為主鍵,自增長;file_name 為文件名;file_data 為文件的二進制數據。注意:使用 LONGBLOB 類型只是為了存儲文件。實際上,可以就像存儲普通數據一樣,使用 BLOB.

將文件存儲到數據庫中的示例代碼如下所示:

$file = file_get_contents('/path/to/your/file');
$file = addslashes($file);
$file_name = 'your_file_name';
$sql = "INSERT INTO file_table (file_name, file_data) VALUES ('$file_name', '$file')";
mysqli_query($link, $sql);

上述示例代碼中的 $link 是 MySQL 數據庫連接對象,$file 是文件的二進制數據。這段代碼先將文件內容讀取并使用 addslashes 函數轉義處理,然后通過 SQL INSERT 語句將文件存儲到數據庫 file_table 表中。

如果從數據庫中讀取文件,可以使用如下代碼:

$file_id = 1; // 文件在數據庫中的 ID
$sql = "SELECT file_name, file_data FROM file_table WHERE id = $file_id";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($result);
$file_name = $row['file_name'];
$file_data = $row['file_data'];
header('Content-type: application/octet-stream'); 
header('Content-Disposition: attachment; filename="' . $file_name . '"');
echo $file_data;

上述代碼中 $file_id 是文件在數據庫中的唯一 ID,使用 SELECT 語句從數據庫中獲取文件名和文件內容。然后通過 header 函數設置 HTTP 響應頭信息,告訴瀏覽器下載內容,并輸出文件內容。

總之,在 MySQL 中存儲文件只需要創建一個包含文件數據的長字段即可,通過二進制方式存儲文件。要從數據庫中讀取文件,將二進制數據輸出到瀏覽器即可。這種方法雖然可以在一定程度上減少文件的數量,但不是所有類型的文件都適合存儲到數據庫中,因此要根據實際情況權衡。