繁体   English   中英

尽管有 conn.commit() 数据没有被添加到数据库中

[英]Data not being added to database despite having conn.commit()

第一次在这里发帖,所以我为糟糕的格式道歉。 我最近开始使用 SQLite3 并查看了教程/说明,但我似乎无法使其正常工作,特别是添加数据不会将其提交到数据库。

import random, sqlite3

conn = sqlite3.connect('card.s3db')
cur = conn.cursor()
cur.execute("""CREATE TABLE card(
    id INT,
number TEXT,
pin TEXT,
balance INT DEFAULT 0
);""")
conn.commit()

card_number = ''.join([str(i) for i in number_list_copy])
pin = ''.join(["{}".format(random.randint(0,9)) for i in range(0, 4)])
cur.execute("INSERT INTO card (number, pin) VALUES (?, ?)", (card_number, pin))
conn.commit()

我省略了一些代码,但本质上 card_number 只是一个字符串。 当我执行

cur.fetchall() 

或者

cur.fetchone()

我分别得到一个空列表或没有 我也尝试了不同的方法来插入数据,并在这里经历了一些线程。

谢谢!

insert修改数据但没有结果。

要从数据库中获取数据,您必须使用select查询。

例如:

cur.execute("SELECT number, pin FROM card")
the_data = cur.fetchall()

作为旁注,您可能希望将id列设为主键:

id INTEGER PRIMARY KEY  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM