国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Mysql怎么把圖片轉(zhuǎn)換的base64以字符串的類型存入數(shù)據(jù)庫?

Mysql怎么把圖片轉(zhuǎn)換的base64以字符串的類型存入數(shù)據(jù)庫?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 08:05:09 1697155509

一、Mysql怎么把圖片轉(zhuǎn)換的base64以字符串的類型存入數(shù)據(jù)庫

MySQL沒有內(nèi)置功能可以實現(xiàn)此功能,但可以使用以下步驟實現(xiàn):1. 使用PHP或其他編程語言將圖像轉(zhuǎn)換成Base64字符串;2. 將Base64字符串存儲在MySQL數(shù)據(jù)庫中的VARCHAR或TEXT字段中。

下面是一個示例:

python

Copy code

import base64

# 讀取圖片并轉(zhuǎn)換為 base64 編碼

with open(“image.jpg”, “rb”) as image_file:

encoded_string = base64.b64encode(image_file.read()).decode(‘utf-8’)

# 將 base64 編碼字符串存儲到數(shù)據(jù)庫中

cursor.execute(“INSERT INTO images (image) VALUES (%s)”, (encoded_string,))

但不建議存儲圖片,音視頻類的真實數(shù)據(jù)到數(shù)據(jù)庫內(nèi)。一般都將這些數(shù)據(jù)存儲到對象存儲上,然后記錄一些位置信息,使用的時候在應(yīng)用程序上面寫邏輯獲取。

硬要這么做就是用blob 這種格式直接存圖片二進(jìn)制更簡單粗暴點

延伸閱讀:

二、在數(shù)據(jù)庫中存儲圖像的常用方法

在數(shù)據(jù)庫中存儲圖像的常用方法是在存儲數(shù)據(jù)之前將圖像轉(zhuǎn)換為base64數(shù)據(jù)。這個過程將增加 33% 的大小。或者,可以將圖像直接存儲為?BLOB;例如:

$image = new Imagick(“image.jpg”);

$data = $image->getImageBlob();

$data = $mysqli->real_escape_string($data);

$mysqli->query(“INSERT INTO images (data) VALUES (‘$data’)”);

然后用

顯示圖片

使用后一種方法,我們節(jié)省了 1/3 的存儲空間。為什么在 MySQL 數(shù)據(jù)庫中將圖像存儲為?base64?更常見?

關(guān)于將圖像存儲在數(shù)據(jù)庫中的優(yōu)缺點有很多爭論,大多數(shù)人認(rèn)為這不是一種實用的方法。無論如何,在這里我假設(shè)我們將圖像存儲在數(shù)據(jù)庫中,并討論這樣做的優(yōu)異方法。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
DBeaver怎么保持?jǐn)?shù)據(jù)庫連接?

一、DBeaver保持?jǐn)?shù)據(jù)庫連接的方法1、連接到數(shù)據(jù)庫打開DBeaver并選擇連接到您的目標(biāo)數(shù)據(jù)庫。選擇適當(dāng)?shù)臄?shù)據(jù)庫類型,輸入必要的連接信息,如主機...詳情>>

2023-10-13 09:05:04
Kettle連接MySQL為什么會報錯?

一、Kettle連接MySQL會報錯的原因1、驅(qū)動程序缺失Kettle需要使用MySQL的JDBC驅(qū)動程序來連接MySQL數(shù)據(jù)庫。如果沒有正確配置或提供JDBC驅(qū)動程序,...詳情>>

2023-10-13 08:53:41
wait()、sleep()、join()和yield()區(qū)別是什么?

一、wait()wait()方法是Object類中的方法,主要用于線程間的同步和協(xié)作。當(dāng)一個線程調(diào)用某個對象的wait()方法時,它會釋放該對象的鎖,并進(jìn)入等...詳情>>

2023-10-13 08:45:29
什么是Caché數(shù)據(jù)庫?

一、對象訪問通過對象訪問,開發(fā)人員可以使用面向?qū)ο蟮木幊陶Z言(如Java、C#等)直接操作數(shù)據(jù)庫中的對象。這種方式提供了更加直觀和便捷的數(shù)據(jù)...詳情>>

2023-10-13 08:42:01
mysql group commit為什么要保證binlog和redo log提交的順序一致?

一、為什么要保證binlog和redo log提交的順序一致MySQL為了保證master和slave的數(shù)據(jù)一致性,就必須保證binlog和InnoDB redo日志的一致性(因為...詳情>>

2023-10-13 08:25:24
快速通道