我正在尝试这样做
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
答案 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"],))
如果您发布错误,我们将能够提供更多帮助。