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
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!