gust.php 1 Denunciar post Postado Dezembro 27, 2016 Pessoal, bom dia Estou tentando inserir alguns arquivos em uma base mysql com python da seguinte maneira: #!/usr/bin/python3 ## CRIADO POR GUSTAVO ## ## DATA 26/12/2016 ##################### import glob import binascii import os import datetime import MySQLdb today = datetime.datetime.today() # Open database connection db = MySQLdb.connect("localhost","root","senha","banco" ) # prepare a cursor object using cursor() method cursor = db.cursor() def read_file(arquivo): with open(arquivo, 'rb') as f: arq = f.read() return arq os.chdir('arq') for file in glob.glob('*.pdf'): processo = file[:-4] cursor.execute("SELECT XPROCESSO FROM D_PR_DESDOBRAMENTOS WHERE NUMERO = '%s'" % (processo)) proc = file data = cursor.fetchone() print ("ID DO PROCESSO : %d " % data) tamanho = os.path.getsize('%s' % (proc)) print ("TAMANHO : %d " % tamanho) blob = binascii.b2a_hex(read_file('%s' % (proc))) #print ("ARQUIVO: %s " % (blob)) cursor.execute('INSERT INTO D_PR_DOCUMENTOS (XPROCESSO, \ DATA, DESCRICAO, NOME_ORIGINAL, \ PAGINA, DOC_BLOB, \ TAMANHO) \ VALUES (%s, %s, %s, %s, %s, %s, %s)' % \ (int(data[0]), today, processo, proc, 1, (blob), tamanho)) db.commit() # disconnect from serve cursor.close() Estou tomando o seguinte erro: Traceback (most recent call last): File "./teste.py", line 41, in <module> (int(data[0]), today, processo, proc, 1, (blob), tamanho)) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 226, in execute self.errorhandler(self, exc, value) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorvalue File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 217, in execute res = self._query(query) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 378, in _query rowcount = self._do_query(q) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 341, in _do_query db.query(q) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) _mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '11:56:16.460837, 0010322-57.2013.5.01.0071, 0010322-57.2013.5.01.0071.pdf, 1, b'' at line 1") O arquivo que estou tentando inserir esta ficando assim: b'' Alguém pode ajudar? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
avelinorun 0 Denunciar post Postado Fevereiro 9, 2017 Para salvar um blob você deve passar o .read() como conteúdo do seu field. No seu exemplo você esta passando o .read() para um binascii, você não precisa disso. Compartilhar este post Link para o post Compartilhar em outros sites