0

我在 Windows 8 x64 上运行以下代码:

import sqlite3 as db

conn = db.connect('test.db')
cursor = conn.cursor()
cursor.execute("create table films(title text, year text, director text)")
print("table created")

cursor.execute('insert into films values("Annie Hall","1977","Woody Allen")')
cursor.execute('insert into films values("The Godfather","1972","Francis Ford Coppola")')

conn.close()

检查创建的 SQLite 文件(test.db)(使用sqlite 命令行 shell测试通过代码创建的表中是否有条目)显示什么。有什么帮助吗?

4

2 回答 2

1

你必须先conn.commit()打电话conn.close()

如果您想要自动提交模式,您必须将isolation_level=None其作为db.connect()调用的参数。

于 2013-07-06T05:02:22.790 回答
0

规范说游标可以是只读的,或者您的数据库可能处于事务模式。我也不清楚为什么您使用execute而不在准备好的语句中指定参数,如cursor.execute('insert into films values(?,?,?)', 'Annie Hall', '1977', 'Woody Allen'). 尝试这些想法,我在您的代码中没有看到任何错误,但只是建议最佳实践。

于 2013-07-06T05:03:47.543 回答