Python sqlite3游标没有提交属性
当我运行此代码时:Python sqlite3游标没有提交属性,python,sqlite,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() 我收到以下错误 Attribut
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'
我完全不知道为什么 commit()
是sqlite3.Connection
notsqlite3.Cursor
的成员方法。在这里。它在
conn.commit()
conn.close() //if you intend to close it afterwards
说明:
光标仅用于向sqlite传递指令,而您必须提交或关闭连接到数据库的实例。根据sir_charles804的回答(抱歉,没有足够的点数添加此注释),应该是:
conn.commit()
而不是
cur.commit()
这是完全正确的。您的意思是
conn.commit()
吗?:-)请使用cur.execute(“插入数据值(?),路径)
,或者确实相信文件名永远不会包含”
字符?(用户可能很棘手…)这将向您显示连接和光标的可能命令。检查它们是否拼写错误或混淆:print(“连接函数:”,dir(sqlite3.connect(“::内存::”))print(“游标函数:”,dir(sqlite3.connect(“::内存::”).Cursor()))从技术上讲,这是因为事务是整个连接的一个功能,而不是游标。在某些情况下,在单个事务中同时打开多个游标是有意义的。