SQLite不保存数据?

0 投票
1 回答
1754 浏览
提问于 2025-04-18 16:49

我正在使用Python,并且想用SQLite这个数据库。不过,当我执行一个命令时,它的数据从来没有保存到表里。

# SQLite
# -
con = sqlite3.connect("comment_data")
c = con.cursor()
c.execute("CREATE TABLE IF NOT EXISTS comments (id TEXT)")
def insert(id):
    c.execute("INSERT INTO comments VALUES ('%s')" % id)

def exists(id):
    c.execute("SELECT 1 FROM comments WHERE id = '%s'" % id)
    if c.fetchone() is None:
        return False
    else:
        return True

def commentCount():
    c.execute("SELECT * FROM comments")
    for row in c:
        print(row)

def close():
    c.close()
# -
#

我执行了insert("random")这个命令,然后运行commentCount(),它能打印出结果。但是当我关闭Python应用程序后,再运行commentCount(),它就打印出None。那么,我该怎么把数据保存到数据库里呢?

1 个回答

1

你必须要commit插入的数据。

con.commit()

如果你不调用这个方法,那么自从上一次调用commit()以来你所做的任何操作,其他数据库连接是看不到的。如果你发现自己写入数据库的数据没有显示出来,请检查一下你是否忘记调用这个方法。

撰写回答