Python sqlite3游标没有属性提交

时间:2013-12-31 16:17:03

标签: python sqlite

当我运行此代码时:

path = '~/Scripts/wallpapers/single.png'
conn = sqlite3.connect('/Users/Heaven/Library/Application Support/Dock/desktoppicture.db')
cur = conn.cursor();
cur.execute("insert into data values ('" + path + "');")
cur.commit()

我收到以下错误

AttributeError: 'sqlite3.Cursor' object has no attribute 'commit'

我完全不知道为什么。

4 个答案:

答案 0 :(得分:17)

commit()sqlite3.Connection而不是sqlite3.Cursor的成员方法。它位于docs

答案 1 :(得分:7)

这是

conn.commit()
conn.close() //if you intend to close it afterwards

说明: 游标仅用于将指令传递给sqlite,而您必须提交或关闭已连接到数据库的实例。

答案 2 :(得分:7)

从sir_charles804的答案(抱歉没有足够的要点将其添加为评论)后面应该是:

conn.commit()

而不是

cur.commit()

答案 3 :(得分:2)

这将向您显示连接和光标的可能命令。检查您没有拼错或混合它们:

print("Connection functions:",dir(sqlite3.connect('::memory::')))
print("\n\n")
print("Cursor functions:",dir(sqlite3.connect('::memory::').cursor()))