У меня есть простая таблицаВыполнить запрос в питоне
******************
MId | Title
1 | pqr
2 | abc
******************
теперь код, который я написал для добавления данных в таблицу
import MySQLdb
db = MySQLdb.connect("localhost", "root", "a", "Project")
cursor = db.cursor()
sql = "INSERT INTO Project.Movie(MId, Title) VALUES(%d, %s)" % (21,'aman')
cursor.execute(sql)
Но приведенный выше код генерирует ошибку
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 159, in execute
query = query % db.literal(args)
TypeError: %d format: a number is required, not str
Я только что прошел номер, а не в кавычках, тогда почему возникает ошибка?
Независимо от ответы ниже, форматирование SQL на стороне python является плохой практикой из-за SQL-инъекции. Посмотрите, как [официальные документы] (http://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html) передают параметры в 'execute()' – Izkata