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

WBOY
Freigeben: 2023-05-18 20:22:49
nach vorne
1425 Leute haben es durchsucht

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()
Nach dem Login kopieren

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()
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage