Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sqlite3游标没有提交属性_Python_Sqlite - Fatal编程技术网

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
not
sqlite3.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()))从技术上讲,这是因为事务是整个连接的一个功能,而不是游标。在某些情况下,在单个事务中同时打开多个游标是有意义的。