圖片二進制資料建議使用 BLOB 類型(依大小選擇 TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB)。
CREATE TABLE Images (
PicNum INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
image BLOB
);
enctype="multipart/form-data",<input type="file" name="Picture">。$_FILES['Picture']['tmp_name'] 讀取暫存檔。fopen() + fread() 取得二進制內容,addslashes() 轉義。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">。
mysql_unbuffered_query() 減少記憶體佔用。