Heim >Backend-Entwicklung >Python-Tutorial >So beheben Sie den 1064-Fehler, wenn Python3 Binärbilder in MySQL einfügt

So beheben Sie den 1064-Fehler, wenn Python3 Binärbilder in MySQL einfügt

WBOY
WBOYnach vorne
2023-05-18 20:22:491469Durchsuche

Binärbild in MySQL 1064-Fehler einfügen

 conn = pymysql.connect(*)
 cur = conn.cursor()
 os.chdir('/home/jibo/zxcsSpider/images/full/')
 list = os.listdir()
 count1 = 0
 for imagename in list:
     count1 += 1
     f = open(imagename, 'rb')
     data = f.read()
     f.close()
     imagepath = '/home/images/full/' + imagename
     imagebin = pymysql.Binary(data)
     sql = "insert into images(imagename,imagepath,imagebin) values('%s', '%s', '%s')"
     cur.execute(sql, (imagename, imagepath, imagebin))
     conn.commit()
 print('image:' + str(count1))
 cur.close()
 conn.close()

Wenn der obige Code ausgeführt wird, meldet MySQL einen 1064-Fehler:

pymysql.err.ProgrammingError: (1064, „Sie haben einen Fehler in Ihrer SQL-Syntax; überprüfen Sie das Handbuch das entspricht Ihrer MySQL-Serverversion für die richtige Syntax zur Verwendung in der Nähe von „cecedd67b6d4716bdbab9fac36e0b2ad1c81cbac.jpg“, „/home/images/f“ in Zeile 1“)

Ändern: ändern ('%s', '%s ', ' %s') wurde in (%s, %s, %s) geändert

 
 conn = pymysql.connect(*)
 cur = conn.cursor()
 os.chdir('/home/images/full/')
 list = os.listdir()
 count1 = 0
 for imagename in list:
     count1 += 1
     f = open(imagename, 'rb')
     data = f.read()
     f.close()
     imagepath = '/home/images/full/' + imagename
     imagebin = pymysql.Binary(data)
     sql = "insert into images(imagename,imagepath,imagebin) values(%s, %s, %s)"
     cur.execute(sql, (imagename, imagepath, imagebin))
     conn.commit()
 print('image:' + str(count1))
 cur.close()
 conn.close()

Der Vorgang war wieder erfolgreich;

Aufgrund einiger Dokumentstörungen habe ich lange gebraucht, um die Ursache im Internet zu finden . Der Parameter %s in pymysql wird nicht verwendet. Wenn wir die Zeichenfolge einfügen, wird möglicherweise kein Fehler gemeldet, da die Zeichenfolge selbst auch Anführungszeichen enthält , aber wenn es im Binärformat vorliegt, wird ein Fehler gemeldet

So speichern Sie Bilder im Binärformat. Geben Sie MySQL ein. MYSQL unterstützt das Speichern von Bildern in der Datenbank, und es gibt ein spezielles Feld BLOB (Binary Large Object)

Zuerst Erstellen Sie eine Tabelle in Ihrer MySQL-Datenbank, um Bilder zu speichern.

CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);

Dann verwenden Sie Python. Der Code speichert lokale Bilder in der Datenbank

Das obige ist der detaillierte Inhalt vonSo beheben Sie den 1064-Fehler, wenn Python3 Binärbilder in MySQL einfügt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen