当我尝试通过SQL将python代码中收集的一些值插入到我的数据库中时,我在以下python代码中遇到SQL错误。我在BOLD中突出显示的代码上遇到SQL错误。任何帮助表示赞赏!
def add_ingredients(cursor) :
while True:
ingredient = raw_input("Name of ingredient (q to quit):")
if ingredient.lower() !='q':
num = raw_input("Number in storage: ")
description = raw_input("description: ")
sql = '''insert into ingredients
(title, amount, description)
values
**(:title, :amount, :description)'''**
cursor.execute(sql,
{"title":ingredient, "amount":num, "description":description})
print "Added!"
else:
print "Okay, quitting."
break
答案 0 :(得分:1)
MySQL Connector不期望这样的命名参数。正如the documentation所示,您应该使用%(var_name)s
格式进行字典插值:
sql = '''insert into ingredients (title, amount, description)
values (%(title)s, %(amount)s, %(description)s)'''
cursor.execute(sql, {"title": ingredient, "amount": num, "description": description})