python mysqldb无法插入一个填充引号的长字符串

时间:2012-03-13 20:12:22

标签: python mysql

我正在尝试这样做

cursor.execute("""INSERT INTO my_stats VALUES (%s,%s)""" % (time.strftime('%Y-%m-%d'), info["countries"]))

其中info [“countries']是这样的json字符串 {“US”:8997,“BG”:78 ....}

我一直从MySQL获得语法错误异常

我正在使用Python-MysqlDB

2 个答案:

答案 0 :(得分:1)

为什么在这里使用多行字符串语法?你只有一行。无论如何,你在开始时有一个额外的"。但你也可以正确地做到这一点,并使用准备好的声明,它不是更难,你只需用逗号替换%

cursor.execute("INSERT INTO my_stats VALUES (%s,%s)", (time.strftime('%Y-%m-%d'), info["countries"], ))

答案 1 :(得分:0)

在查询字符串的开头有一个额外的双引号 此外,您应该将您的参数作为第二个参数传递给execute以避免SQL注入攻击;并确保正确引用这些值,例如:

cursor.execute("""INSERT INTO my_stats 
                  VALUES (%s, %s);""", (time.strftime('%Y-%m-%d'), 
                                        info["countries"],))

如果您发布错误,我们将能够提供更多帮助。