ProgrammingError: not all arguments converted during string formatting

0 votes

I am trying to insert a data into a BLOB column in MySQL Server it is keep giving me this error:

ProgrammingError: not all arguments converted during string formatting

I could not define why so please help,

P.S. the type of the column in MySQL is set to LONGBLOB

here is my code:

#from mysql.connector import MySQLConnection, Error
import MySQLdb
def update_blob(filename):
    # read file
    pic = open(filename)

    data = pic.read()

    # prepare update query and data
    query = "UPDATE image " \
            "SET picture = ? "
    print data

    ###############
    hostname = ''
    username = ''
    password = ''
    database = ''

    try:
        conn = MySQLdb.connect( host=hostname, user=username, passwd=password, db=database )
        print 'connected'
        cursor = conn.cursor()
        cursor.execute(query, data)
        conn.commit()
    except Error as e:
        print(e)

    finally:
        cursor.close()
        conn.close()

and the error:

ProgrammingError                          Traceback (most recent call last)
<ipython-input-35-389eb7e8c3c0> in <module>()
----> 1 update_blob('hovik.jpg')

<ipython-input-34-48db763c9aee> in update_blob(filename)
     21         print 'connected'
     22         cursor = conn.cursor()
---> 23         cursor.execute(query, data)
     24         conn.commit()
     25     except Error as e:

>/usr/lib/python2.7/dist-packages/MySQLdb/cursors.pyc in execute(self, query, args)
    238                 query = query % args
    239             except TypeError as m:
--> 240                 self.errorhandler(self, ProgrammingError, str(m))
    241 
    242         if isinstance(query, unicode):

>/usr/lib/python2.7/dist-packages/MySQLdb/connections.pyc in defaulterrorhandler(***failed resolving arguments***)
     50         raise errorvalue
     51     if errorclass is not None:
---> 52         raise errorclass(errorvalue)
     53     else:
     54         raise Exception(errorvalue)

`ProgrammingError: not all arguments converted during string formatting`

Sep 10, 2018 in Python by bug_seeker
• 15,350 points
3,353 views

1 answer to this question.

0 votes

Sorted!!!! just found the solution,

1 - apparently i could not use ? because of the format specifier, 2 - and i also did not add the con for not only being able to retrive but also to insert in the database,

here is the example of the code that worked for me:

import MySQLdb

hostname = ''
username = ''
password = ''
database = ''

myConnection = MySQLdb.connect( host=hostname, user=username, passwd=password, db=database )


def doQuery() :

    fin  = open("hovik.jpg",'rb')
    contents = fin.read()
    fin.close()

    with myConnection:
        cur = myConnection.cursor()
        sql = "INSERT INTO image VALUES (%s)"

        ret = cur.execute(sql, [contents])

doQuery()
myConnection.close()
answered Sep 10, 2018 by Priyaj
• 56,900 points

Related Questions In Python

0 votes
1 answer

Extract all characters of a string

Convert it to a list -  s = ...READ MORE

answered Jun 1, 2018 in Python by Nietzsche's daemon
• 4,260 points
33 views
+1 vote
2 answers

Python string formatting: % vs. .format

Using Python format() function is what the ...READ MORE

answered Apr 11 in Python by Dasa Ravi
62 views
+1 vote
2 answers

Remove all whitespace in a string in Python

You can also use regular expressions for ...READ MORE

answered Aug 31, 2018 in Python by Omkar
• 67,600 points
2,054 views
0 votes
1 answer
0 votes
1 answer

Create a database table using python

Hey @Kim, try something like this: import MySQLdb # ...READ MORE

answered Jul 22 in Python by Barbara
26 views
0 votes
2 answers

How do I connect to a MySQL Database in Python?

connect mysql database with python import MySQLdb db = ...READ MORE

answered Mar 28 in Python by rajesh
• 1,210 points
155 views
0 votes
1 answer

Connect to a MySQL using Python?

Very similar to mysqldb but better than ...READ MORE

answered Nov 16, 2018 in Python by Jino
• 5,560 points
50 views
0 votes
1 answer

ProgrammingError: not all arguments converted during string formatting

Sorted!!!! just found the solution, 1 - apparently ...READ MORE

answered Sep 20, 2018 in Python by Priyaj
• 56,900 points
668 views
0 votes
1 answer

Python string formatting: % vs. .format

To answer your first question... .format just ...READ MORE

answered Aug 17, 2018 in Python by Priyaj
• 56,900 points
30 views