📅  最后修改于: 2023-12-03 15:07:56.222000             🧑  作者: Mango
MySQL BLOB 是一种二进制数据类型,可以存储大量数据,如图像、音频、视频等。在 Python 中,我们可以使用 MySQL Connector 模块来处理 MySQL 数据库,包括读取和写入 BLOB 数据。
在使用 MySQL Connector 之前,我们需要先安装它:
pip install mysql-connector-python
接着,我们可以使用以下代码连接 MySQL 数据库:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
请务必将 yourusername
、yourpassword
和 yourdatabase
替换为实际的 MySQL 登录凭据和数据库名称。
要从 MySQL 数据库中读取 BLOB 数据,我们可以使用 MySQL Connector 提供的 SELECT
语句,并使用 fetchall()
方法获取结果集。例如,以下代码将从 BLOB_test 表中读取所有记录,并将 BLOB 数据保存为文件:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM BLOB_test")
for result in mycursor.fetchall():
with open(result[1], 'wb') as file:
file.write(result[0])
在上述示例中,BLOB_test 表包含 BLOB
类型的 data
和 filename
字段。我们遍历结果集,并使用 open()
函数创建新的二进制文件,并使用 write()
方法将 BLOB 数据写入该文件中。
要将二进制数据写入 MySQL 数据库中的 BLOB 字段,我们可以使用 INSERT
语句,并传递二进制数据作为参数。例如,以下代码将从本地计算机读取文件,并将文件内容插入到 MySQL 数据库的 BLOB_test 表中:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
mycursor = mydb.cursor()
file = open("example.jpg", "rb")
data = file.read()
sql = "INSERT INTO BLOB_test (filename, data) VALUES (%s, %s)"
val = ("example.jpg", data)
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
在上述示例中,我们使用 open()
函数打开本地文件 example.jpg
,并使用 read()
方法读取其内容。接着,我们使用 INSERT
语句将该二进制数据插入到 MySQL 数据库的 BLOB_test
表中。
使用 MySQL Connector 模块,我们可以轻松地读取和写入 MySQL 数据库中的 BLOB 数据。以上示例代码仅仅提供了一些基础操作,你可以根据自己的需求进行扩展。