这本名为《实用编程:第二版》的书有相互矛盾的代码。这是我的代码的开始:
import sqlite3
con = sqlite3.connect('stackoverflow.db')
cur = conn.cursor()
要提交,我将使用con.commit()
、cur.commit()
,还是各有不同的使用时间?书中有这样一段话:con.commit()
:
cur.commit()
:
这本名为《实用编程:第二版》的书有相互矛盾的代码。这是我的代码的开始:
import sqlite3
con = sqlite3.connect('stackoverflow.db')
cur = conn.cursor()
要提交,我将使用con.commit()
、cur.commit()
,还是各有不同的使用时间?书中有这样一段话:con.commit()
:
cur.commit()
:
4条答案
按热度按时间uqxowvwt1#
我采纳了Unutbu的建议,亲自尝试了一下。
示例代码:
PyCharm运行:
课本上的错误。
cur.commit()
不存在。感谢unutbu和s3n0
irlmq6kh2#
con.commit()
和conn.commit()
相同...它们是创建的对象类型...在这两种情况下,他们都被另外命名为...重要的主要是.commit()
,而不是程序员指定的命名有些对象类型使用与调用方法不同的名称(con和cur-如您所要求的)。您还可以在代码中使用其他名称,例如:
请再次查看https://docs.python.org/3/library/sqlite3.html网页。你忘了从网页上复制这两行:
然后继续代码(只是复制它):
wj8zmpe13#
我认为如果您使用指定的游标来提交更改,那么在您的例子中,它应该是cur.Connection.Commit()。无论代码名为db、con还是conn,您都可以在代码末尾使用CONNECT来提交。但是当你的代码变得复杂时,你会有不同的函数来对数据库进行某些操作,如果你只使用连接提交,当出现错误时,你很难发现哪个函数失败了。因此,您为特定操作创建特定游标,当失败时,回溯消息将显示错误的特定游标。
ix0qys7i4#
根据@s3n0和@DanielYu的观点,可以用两种不同的方式来处理它们。为了更好地理解这些重叠之处,我不得不列出以下几点:
连接对象
游标对象