Ir para conteúdo
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora


×

Informação importante

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

Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: