正确的方法是使用参数化查询。
例:
cur.execute("""INSERT INTO perioder(fra, id, til) VALUES (?,?,?);""", (fra, per_id, til))每个数据库驱动程序都有一个特定的参数“样式”。
对于SQLite,该参数样式为
?。
另请注意,参数值作为第二个参数传递给
execute()。
使用字符串插值会使您容易遭受各种引号问题(例如将您引到这里的问题)以及SQL注入攻击的可能性。
有关更多信息,请阅读DB-
API和数据库编程Wiki。



