【问题标题】:Sqlite3 not inserting values into the databaseSqlite3没有将值插入数据库
【发布时间】:2018-11-07 20:09:38
【问题描述】:

我制作了一个允许用户操作数据库的程序,我有一个部分,用户可以将多个条目添加到某个数据库中(1 到 10 个条目之间的任意位置)我创建了另一个我使用的程序(如下)使用与我的主程序类似的原理来“重置”数据库。

import sqlite3, time
schoolDBConn = sqlite3.connect("SCHOOL_DB.db")
schoolDBCursor = schoolDBConn.cursor()

schoolDBCursor.execute(
                            """
                               CREATE TABLE IF NOT EXISTS USER_DETAILS 
                               (
                               username text,
                               password text,
                               clearance int,
                               classes int
                               )
                            """
                            )

schoolDBCursor.execute("SELECT * FROM USER_DETAILS")
print(schoolDBCursor.fetchall())

if input("Delete all user_details?").upper() == "Y":
    schoolDBCursor.execute("DELETE FROM USER_DETAILS")
if input("add items to user_details?").upper() == "Y":
    user_list = [("foo","bar",3,0),("bar","foo",3,0),("Terri","Pass",2,0),
                 ("Chris","Pass",2,0),("Tony","Pass",2,0),("Emma","Pass",2,0),
                 ("Thomas","Pass",1,0),("Penny","Pass",1,0),("Kamryn","Pass",1,0),
                 ("Kelsie","Pass",1,0),("James","Pass",1,0),("Connor","Pass",1,0),
                 ("Steve","Pass",1,0),("Bob","Pass",2,0),("Elon","Pass",1,0)]
    for i in user_list:
        schoolDBCursor.execute("""INSERT INTO USER_DETAILS VALUES (?,?,?,?)""",
                               (i[0],i[1],i[2],i[3]))

schoolDBCursor.execute("SELECT * FROM USER_DETAILS")
print(schoolDBCursor.fetchall())

如果我运行这个函数,现有数据库中的所有项目都被打印出来,那么如果我选择只删除数据库中存在的项目,那么打印函数什么也不返回。如果我选择删除然后将项目“添加”到数据库中,打印函数会返回我添加的项目

但是,当我重新运行程序时,第一个打印语句返回数据库中的原始项目(不是删除的表,或者 users_list 中的项目),这当然没有帮助。

我的主程序也受此影响,它会导致问题,因为我需要快速更新数据。 我还使用应用程序“SQlite manager”来查看我的表,它们也不会更新

【问题讨论】:

    标签: sql python-3.x sqlite


    【解决方案1】:

    原来我没有提交数据,我不得不这样做:

    schoolDBConn.commit()
    

    with schoolDBConn:
    

    【讨论】:

      猜你喜欢
      • 2011-12-21
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 2021-10-25
      • 2019-08-11
      • 1970-01-01
      相关资源
      最近更新 更多