pymysql.err.programmingError: (1064)
pymysql.err.programmingError: (1064)
我无法将 blob 存储到 xampp 服务器。这是我遇到的错误。
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '5\xd2\xe0\xe5yllN\xbc\xa7!\x11!\x16\xcftaJ\xd1\x863\xbf\x9a\x9aF\x83\xe8\xc9\...' at line 2")
这是应该将 blob 保存到 xampp 中的函数。 xampp 中的数据类型设置为 mediumblob。我正在使用 tkinter,这个功能绑定到一个按钮。
def save_to_db():
get_id_no = id_no_var.get()
get_first_name = first_name_var.get()
get_middle_name = middle_name_var.get()
get_last_name = last_name_var.get()
get_course = course_var.get()
raw_qr_code_id = str(get_id_no + get_first_name + get_middle_name + get_last_name + get_course)
final_qr_code_id = str(raw_qr_code_id.replace(" ", ""))
filename = (final_qr_code_id + ".png")
raw_image = (filename)
image = open(raw_image, 'rb')
image_binary = image.read()
cursor.execute("""INSERT INTO `student_information` (`id_no`, `first_name`, `middle_name`, `last_name`, `course`, `qr_code_id`, `qr_code_blob`)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')""" % (get_id_no, get_first_name, get_middle_name, get_last_name, get_course, final_qr_code_id, image_binary))
connect_db.commit()
以下是我成功插入数据的方式:
我首先创建了一个table(由于我的图片大小,使用了LONGBLOB类型):
MariaDB [DB]> create table TEST ( id int, file_file LONGBLOB);
然后二值化一张图片
image = open('/home/med/Pictures/Screenshot from 2019-12-19 12-48-53.png', 'rb')
image_binary = image.read()
之后我使用了以下查询(注意查询周围的单引号和 %s
周围的双引号)
connection.execute('''INSERT INTO TEST (`id`, `file_file`) VALUES ("%s", "%s")''', (1, image_binary))
# <sqlalchemy.engine.cursor.LegacyCursorResult at 0x7f2b24165580>
检查注入是否有效
MariaDB [DB]> select count(*) from TEST;
+----------+
| count(*) |
+----------+
| 1 |
+----------+
1 row in set (0.001 sec)
MariaDB [DB]>
我无法将 blob 存储到 xampp 服务器。这是我遇到的错误。
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '5\xd2\xe0\xe5yllN\xbc\xa7!\x11!\x16\xcftaJ\xd1\x863\xbf\x9a\x9aF\x83\xe8\xc9\...' at line 2")
这是应该将 blob 保存到 xampp 中的函数。 xampp 中的数据类型设置为 mediumblob。我正在使用 tkinter,这个功能绑定到一个按钮。
def save_to_db():
get_id_no = id_no_var.get()
get_first_name = first_name_var.get()
get_middle_name = middle_name_var.get()
get_last_name = last_name_var.get()
get_course = course_var.get()
raw_qr_code_id = str(get_id_no + get_first_name + get_middle_name + get_last_name + get_course)
final_qr_code_id = str(raw_qr_code_id.replace(" ", ""))
filename = (final_qr_code_id + ".png")
raw_image = (filename)
image = open(raw_image, 'rb')
image_binary = image.read()
cursor.execute("""INSERT INTO `student_information` (`id_no`, `first_name`, `middle_name`, `last_name`, `course`, `qr_code_id`, `qr_code_blob`)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')""" % (get_id_no, get_first_name, get_middle_name, get_last_name, get_course, final_qr_code_id, image_binary))
connect_db.commit()
以下是我成功插入数据的方式: 我首先创建了一个table(由于我的图片大小,使用了LONGBLOB类型):
MariaDB [DB]> create table TEST ( id int, file_file LONGBLOB);
然后二值化一张图片
image = open('/home/med/Pictures/Screenshot from 2019-12-19 12-48-53.png', 'rb')
image_binary = image.read()
之后我使用了以下查询(注意查询周围的单引号和 %s
周围的双引号)
connection.execute('''INSERT INTO TEST (`id`, `file_file`) VALUES ("%s", "%s")''', (1, image_binary))
# <sqlalchemy.engine.cursor.LegacyCursorResult at 0x7f2b24165580>
检查注入是否有效
MariaDB [DB]> select count(*) from TEST;
+----------+
| count(*) |
+----------+
| 1 |
+----------+
1 row in set (0.001 sec)
MariaDB [DB]>