在MySQL中,存儲圖片可以使用BLOB數(shù)據(jù)類型
CREATE TABLE images ( id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), data BLOB );
BLOB即Binary Large Object,是一種二進(jìn)制數(shù)據(jù)類型,可以存儲大量二進(jìn)制數(shù)據(jù),如圖像、音頻和視頻文件。但是,使用BLOB存儲大型二進(jìn)制數(shù)據(jù)會占用大量內(nèi)存,因此存儲時需要考慮性能和存儲空間的問題。
如果只需要存儲小型圖片或縮略圖,則可以將圖片轉(zhuǎn)換為BASE64編碼并使用VARCHAR類型存儲。
CREATE TABLE images ( id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), data VARCHAR(10000) );
當(dāng)需要在網(wǎng)頁中顯示圖像時,可以使用img標(biāo)簽,并通過PHP查詢數(shù)據(jù)庫獲取圖片數(shù)據(jù)并將其輸出到img標(biāo)簽的src屬性中。
<?php $id = $_GET['id']; $query = "SELECT data FROM images WHERE id = $id"; $result = mysqli_query($connection, $query); $row = mysqli_fetch_array($result); header("Content-type: image/jpeg"); echo $row['data']; ?>
總之,在存儲和顯示圖片時,需要根據(jù)實(shí)際需求選擇最適合的數(shù)據(jù)類型和方法,并需要注意性能、存儲空間和數(shù)據(jù)安全等問題。