SQLite3 python不起作用?

时间:2013-09-20 22:34:53

标签: python sqlite sql-insert

我遇到了sql语句的问题,当我尝试插入数据时似乎工作,但是当我检查表时,那里什么都没有。我尝试使用以下语句插入数据:

cursor.execute("INSERT INTO song (title,artist) VALUES (\'{0}\',\'{1}\')".format(tit,art))

然而,当我通过下一个方式通过终端进行时,它可以工作:

cursor.execute("INSERT INTO song (title,artist) VALUES ('Hide','Yellowcard')")

我还尝试使用%s来替换字符串。

1 个答案:

答案 0 :(得分:3)

您需要使用SQL参数; sqlite3库使用?占位符:

cursor.execute("INSERT INTO song (title, artist) VALUES (?, ?)", (tit, art))

这有一个额外的好处,sqlite3将为您找出如何引用每个值,防止SQL注入攻击,并使数据库有机会缓存​​查询的查询计划,并在未来的值中插入。

确保提交您的交易。