2

Can someone tell me what's wrong with this Syntax?

>>>y = 14
>>> cursor.execute("INSERT INTO accounts VALUES ('Bobby', %s)", (y))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/mysql/connector/cursor.py", line 477, in execute
    stmt = operation % self._process_params(params)
  File "/Library/Python/2.7/site-packages/mysql/connector/cursor.py", line 355, in      
_process_params
    "Failed processing format-parameters; %s" % err)
    mysql.connector.errors.ProgrammingError: Failed processing format-parameters; argument   
    2 to map() must support iteration

1 Answer 1

7

y should be inside a tuple:

cursor.execute("INSERT INTO accounts VALUES ('Bobby', %s)", (y, ))

FYI, (y) is not a tuple - it is an int in parenthesis, adding comma (y,) makes it a tuple with one element inside:

>>> y = 14
>>> type((y))
<type 'int'>
>>> type((y,))
<type 'tuple'>
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.