如何解决尽管具有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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。