Sqlite插入查询不与python?

我一直在尝试在python中使用下面的代码插入数据到数据库中:

import sqlite3 as db conn = db.connect('insertlinks.db') cursor = conn.cursor() db.autocommit(True) a="asd" b="adasd" cursor.execute("Insert into links (link,id) values (?,?)",(a,b)) conn.close() 

代码运行没有任何错误。 但是不会更新数据库。 我试图添加conn.commit()但它提供了一个错误,说没有find模块。 请帮忙?

插入后您必须提交:

 cursor.execute("Insert into links (link,id) values (?,?)",(a,b)) conn.commit() 

或者使用连接作为上下文pipe理器 :

 with conn: cursor.execute("Insert into links (link,id) values (?,?)", (a, b)) 

或者通过将connect()方法的isolation_level关键字参数设置为None来正确设置自动提交:

 conn = db.connect('insertlinks.db', isolation_level=None) 

请参阅控制事务 。

它可能有点晚,但设置autocommit = true保存我的时间! 特别是如果你有一个脚本运行一些批量操作update/insert/delete

参考: https //docs.python.org/2/library/sqlite3.html#sqlite3.Connection.isolation_level

这是我通常在我的脚本中的方式:

 def get_connection(): conn = sqlite3.connect('../db.sqlite3', isolation_level=None) cursor = conn.cursor() return conn, cursor def get_jobs(): conn, cursor = get_connection() if conn is None: raise DatabaseError("Could not get connection") 

我希望它可以帮助你!