python插入sql错误

时间:2017-11-17 09:01:59

标签: python mysql sql python-2.7 insert-into

当我尝试通过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

1 个答案:

答案 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})