当前位置:首页 > 数据库 > SQlite

Python,Sqlite没有在文件上保存结果

我在Python中有这个代码:

conn = sqlite3.connect("people.db")
cursor = conn.cursor()

sql = 'create table if not exists people (id integer, name VARCHAR(255))'
cursor.execute(sql)
conn.commit()

sql = 'insert into people VALUES (3, "test")'
cursor.execute(sql)
conn.commit()   

sql = 'insert into people VALUES (5, "test")'
cursor.execute(sql)
conn.commit()  

print 'Printing all inserted'
cursor.execute("select * from people")
for row in cursor.fetchall():
    print row

cursor.close()
conn.close()

但似乎永远不会保存到数据库,数据库上总是有相同的元素,就好像它没有保存任何东西.

另一方面如果我尝试通过sqlite访问db文件,我收到此错误:

Unable to open database "people.db": file is encrypted or is not a database

我发现在其他一些答案上使用conn.commit而不是conn.commit()但是没有改变结果.

任何的想法?

解决方法:

这对我来说似乎没问题(每次运行时“在数据库中”增加):

import random, sqlite3

conn = sqlite3.connect("people.db")
cursor = conn.cursor()

sql = 'create table if not exists people (id integer, name VARCHAR(255))'
cursor.execute(sql)

for x in xrange(5):
    cursor.execute('insert into people VALUES (?, "test")', (random.randint(1, 10000),))
conn.commit()

cursor.execute("select count(*) from people")
print "In database:", cursor.fetchone()[0]

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!