📜  在Python使用 MySQL BLOB(1)

📅  最后修改于: 2023-12-03 15:07:56.222000             🧑  作者: Mango

在 Python 中使用 MySQL BLOB

MySQL BLOB 是一种二进制数据类型,可以存储大量数据,如图像、音频、视频等。在 Python 中,我们可以使用 MySQL Connector 模块来处理 MySQL 数据库,包括读取和写入 BLOB 数据。

连接 MySQL 数据库

在使用 MySQL Connector 之前,我们需要先安装它:

pip install mysql-connector-python

接着,我们可以使用以下代码连接 MySQL 数据库:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="yourdatabase"
)

请务必将 yourusernameyourpasswordyourdatabase 替换为实际的 MySQL 登录凭据和数据库名称。

读取 BLOB 数据

要从 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 类型的 datafilename 字段。我们遍历结果集,并使用 open() 函数创建新的二进制文件,并使用 write() 方法将 BLOB 数据写入该文件中。

写入 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 数据。以上示例代码仅仅提供了一些基础操作,你可以根据自己的需求进行扩展。