首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 儲存圖片實戰:BLOB 欄位完整操作流程

     編輯:MySQL 資料庫相關知識

資料表設計

圖片二進制資料建議使用 BLOB 類型(依大小選擇 TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB)。

CREATE TABLE Images (
    PicNum INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    image BLOB
);

上傳腳本核心邏輯

  1. 表單 enctype="multipart/form-data",<input type="file" name="Picture">。
  2. PHP 端 $_FILES['Picture']['tmp_name'] 讀取暫存檔。
  3. fopen() + fread() 取得二進制內容,addslashes() 轉義。
  4. 執行 INSERT INTO Images (image) VALUES ('$data')。

常見錯誤:Packet too large,請調大 max_allowed_packet(如 16M)。

圖片顯示腳本

// show_image.php?pic=123
header("Content-type: image/jpeg");  // 依實際格式調整
$result = mysql_query("SELECT image FROM Images WHERE PicNum=$pic");
$row = mysql_fetch_array($result);
echo $row['image'];

標籤直接指向此腳本:<img src="show_image.php?pic=123">。

效能與架構建議

  • 小圖(<100KB)入庫可接受;大圖建議存檔案系統,資料庫僅存路徑。
  • 啟用 mysql_unbuffered_query() 減少記憶體佔用。
  • 配合 CDN/快取層降低資料庫壓力。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved