Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gust.php

Python Mysql insert Blob

Recommended Posts

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.