Sqlite3|数据不保存在表中

gcmastyq  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(210)

代码在我运行时可以运行,但当我再次运行它时,来自前一次运行的数据没有保存,但表仍然存在。我尝试了许多保存文件的方法,但它仍然没有保存

import sqlite3

conn = sqlite3.connect('conntact.db')
cursor = conn.cursor()
check = cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='contacts'");

if check == 0:
    cursor.execute('''CREATE TABLE contacts
       (ID INTEGER PRIMARY KEY AUTOINCREMENT,
        NAME            TEXT    NOT NULL,
        EMAIL           TEXT    NOT NULL,
        PHONE           TEXT    NOT NULL);''');

def add_contacts():
    name1 = input("Enter contact name: ")
    email1 = input("Enter contact email: ")
    phone1 = input("Enter contact phone number: ")
    id_s = input("Enter id: ")
    cursor.execute("INSERT INTO contacts (ID, NAME,EMAIL,PHONE) VALUES (?,?,?,?)", (id_s, name1, email1, phone1));


def read_all_contact():
    cursor.execute("SELECT * FROM contacts");
    records = cursor.fetchall()
    print(f"Total rows are: {len(records)}")
    for row in records:
        print(f'ID: {row[0]}')
        print(f'Name: {row[1]}')
        print(f'Email: {row[2]}')
        print(f'Phone: {row[3]}\n')
        
    

add_contacts()
read_all_contact()
conn.close()

任何帮助都将是一种感激

iqjalb3h

iqjalb3h1#

1.删除check = ...行,这无论如何都是错误的。
1.移除if check == 0
1.将“创建表联系人”改为“如果不存在则创建表联系人”
1.执行Conn.Commit()

相关问题