On Thu, Nov 26, 2009 at 2:12 PM, MRAB <pyt...@mrabarnett.plus.com> wrote:
> Victor Subervi wrote: > >> On Thu, Nov 26, 2009 at 1:10 PM, Victor Subervi >> <victorsube...@gmail.com<mailto: >> victorsube...@gmail.com>> wrote: >> >> On Thu, Nov 26, 2009 at 11:52 AM, MRAB <pyt...@mrabarnett.plus.com >> <mailto:pyt...@mrabarnett.plus.com>> wrote: >> >> Victor Subervi wrote: >> >> On Thu, Nov 26, 2009 at 10:03 AM, Carsten Haese >> <carsten.ha...@gmail.com <mailto:carsten.ha...@gmail.com> >> <mailto:carsten.ha...@gmail.com >> <mailto:carsten.ha...@gmail.com>>> wrote: >> >> cursor.execute('update products set pic1=%s where ID=1', >> (MySQLdb.Binary(pic1),)) >> >> [That comma between the two closing parentheses is not a >> typo. Do not >> leave it out!] >> >> >> A problem occurred in a Python script. Here is the sequence >> of function calls leading up to the error, in the order they >> occurred. >> /var/www/html/angrynates.com/cart/addEdit.py >> <http://angrynates.com/cart/addEdit.py> >> <http://angrynates.com/cart/addEdit.py> >> >> 85 print '<body>\n</html>' >> 86 db.commit() >> 87 cursor.close() >> 88 >> 89 addEdit() >> addEdit = <function addEdit> >> /var/www/html/angrynates.com/cart/addEdit.py >> <http://angrynates.com/cart/addEdit.py> >> <http://angrynates.com/cart/addEdit.py> in addEdit() >> >> 66 id = 0 >> 67 cursor.execute(sql) >> 68 cursor.execute('update products set pic1=%s where >> ID=1' (MySQLdb.Binary(pics[0]),)) >> 69 for col in colNamesPics: >> cursor = <MySQLdb.cursors.Cursor object>, cursor.execute = >> <bound method Cursor.execute of <MySQLdb.cursors.Cursor >> object>>, global MySQLdb = <module 'MySQLdb' from >> '/usr/lib64/python2.4/site-packages/MySQLdb/__init__.pyc'>, >> MySQLdb.Binary = <function Binary>, pics = >> >> >> ['\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x02\x01\x00H\x00H\x00\x00\xff\xe1\x13\xd5Exif\x00\x00MM\x00*\x00\x00\x00\x08\x00\x07\x01\x12\x00\x03\x00\x00\x00\x01...\xdb\x9f\x94\xa9\xfds\xc9y\xb1W\xda\xd66\x9azS\x84\xd1\x1f\x93\xa9\xfdG\x0fm\xe3\x84\x01\xc5\x94\xfc\x88\xcf\x06f\xc5_\x7fPS6x\x076*\xff\x00\xff\xd9', >> '', ''] >> >> TypeError: 'str' object is not callable >> args = ("'str' object is not callable",) >> >> Please advise. >> >> >> On line 68 you have a string literal immediately followed by a >> tuple, so >> it looks like you're trying to call a string, hence the >> exception. Put a >> comma between the string literal and the tuple. >> >> >> Hang on. Not done yet. The line of code I gave you was just a test case. >> The real ones, and the error they threw, follows: >> >> A problem occurred in a Python script. Here is the sequence of function >> calls leading up to the error, in the order they occurred. >> /var/www/html/angrynates.com/cart/addEdit.py < >> http://angrynates.com/cart/addEdit.py> >> 87 print '<body>\n</html>' >> 88 db.commit() >> 89 cursor.close() >> 90 >> 91 addEdit() >> addEdit = <function addEdit> >> /var/www/html/angrynates.com/cart/addEdit.py < >> http://angrynates.com/cart/addEdit.py> in addEdit() >> 71 for pic in pics: >> 72 sql = 'update %s set %s=%s where ID=%s;' % (t, >> colNamesPics[i], '%s', str(id)) >> 73 cursor.execute(sql, (MySQLdb.Binary(pics[id]),)) >> 74 i += 1 >> 75 elif whatDo == 'insert': >> cursor = <MySQLdb.cursors.Cursor object>, cursor.execute = <bound method >> Cursor.execute of <MySQLdb.cursors.Cursor object>>, sql = 'update products >> set pic1=%s where ID=1;', global MySQLdb = <module 'MySQLdb' from >> '/usr/lib64/python2.4/site-packages/MySQLdb/__init__.pyc'>, MySQLdb.Binary = >> <function Binary>, pics = >> ['\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x02\x01\x00H\x00H\x00\x00\xff\xe1\x13\xd5Exif\x00\x00MM\x00*\x00\x00\x00\x08\x00\x07\x01\x12\x00\x03\x00\x00\x00\x01...\xdb\x9f\x94\xa9\xfds\xc9y\xb1W\xda\xd66\x9azS\x84\xd1\x1f\x93\xa9\xfdG\x0fm\xe3\x84\x01\xc5\x94\xfc\x88\xcf\x06f\xc5_\x7fPS6x\x076*\xff\x00\xff\xd9'], >> id = '1' >> >> TypeError: list indices must be integers >> args = ('list indices must be integers',) >> >> The traceback explains what the problem is: you're indexing a list, but > the index you're providing isn't an integer. > > Remember that an integer is not a string and a string is not an integer. I've been caught on that one more than once. Thanks, that did it :) Happy Thanksgiving. V
-- http://mail.python.org/mailman/listinfo/python-list