MySQL没有内置功能可以实现此功能,但可以使用以下步骤实现:1. 使用PHP或其他编程语言将图像转换成Base64字符串;2. 将Base64字符串存储在MySQL数据库中的VARCHAR或TEXT字段中。
一、Mysql怎么把图片转换的base64以字符串的类型存入数据库
MySQL没有内置功能可以实现此功能,但可以使用以下步骤实现:1. 使用PHP或其他编程语言将图像转换成Base64字符串;2. 将Base64字符串存储在MySQL数据库中的VARCHAR或TEXT字段中。
下面是一个示例:
python
Copy code
import base64
# 读取图片并转换为 base64 编码
with open(“image.jpg”, “rb”) as image_file:
encoded_string = base64.b64encode(image_file.read()).decode(‘utf-8’)
# 将 base64 编码字符串存储到数据库中
cursor.execute(“INSERT INTO images (image) VALUES (%s)”, (encoded_string,))
但不建议存储图片,音视频类的真实数据到数据库内。一般都将这些数据存储到对象存储上,然后记录一些位置信息,使用的时候在应用程序上面写逻辑获取。
硬要这么做就是用blob 这种格式直接存图片二进制更简单粗暴点
延伸阅读:
二、在数据库中存储图像的常用方法
在数据库中存储图像的常用方法是在存储数据之前将图像转换为base64数据。这个过程将增加 33% 的大小。或者,可以将图像直接存储为 BLOB;例如:
$image = new Imagick(“image.jpg”);
$data = $image->getImageBlob();
$data = $mysqli->real_escape_string($data);
$mysqli->query(“INSERT INTO images (data) VALUES (‘$data’)”);
然后用
显示图片
<img src=”data:image/jpeg;base64,’ . base64_encode($data) . ‘” />
使用后一种方法,我们节省了 1/3 的存储空间。为什么在 MySQL 数据库中将图像存储为 base64 更常见?
关于将图像存储在数据库中的优缺点有很多争论,大多数人认为这不是一种实用的方法。无论如何,在这里我假设我们将图像存储在数据库中,并讨论这样做的优异方法。