当我运行此代码时:
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'
我完全不知道为什么。
答案 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()))