You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何向SQLite数据库录入数据?附Python实现代码示例

如何向SQLite数据库录入数据?

嘿,我来给你展示一个实用的实现方案——用Python结合sqlite3easygui库,完成向ATM.sqlite数据库的CUSTOMER表录入用户数据的功能,正好匹配你提到的场景:

完整可运行代码

import easygui as eg
import sqlite3

# 连接数据库(如果不存在则自动创建)
conn = sqlite3.connect('ATM.sqlite')
print("Connected to database successfully")

# 确保CUSTOMER表存在(不存在则创建)
conn.execute("CREATE TABLE if not exists CUSTOMER(ID INTEGER, Name TEXT, Address TEXT, Mobile_no INTEGER, PIN INTEGER, Balance INTEGER)")

def Admin_AddUser():
    # 定义需要收集的用户信息字段
    input_fields = ['ID', 'Name', 'Address', 'Mobile No.', 'PIN']
    # 新用户初始余额默认设为0
    initial_balance = 0
    # 弹出图形化输入框收集用户信息
    user_info = eg.multenterbox('Enter the information for new user', 'Add User', input_fields)
    
    # 判断用户是否取消了输入操作
    if user_info is not None:
        # 执行数据插入操作,用占位符避免SQL注入风险
        conn.execute(
            'INSERT INTO CUSTOMER (ID, Name, Address, Mobile_no, PIN, Balance) VALUES (?, ?, ?, ?, ?, ?)',
            (user_info[0], user_info[1], user_info[2], user_info[3], user_info[4], initial_balance)
        )
        # 提交事务,确保数据真正写入数据库
        conn.commit()
        eg.msgbox('User added successfully!', 'Success')
    else:
        eg.msgbox('User addition cancelled.', 'Info')

# 调用函数执行添加用户流程
Admin_AddUser()

# 操作完成后关闭数据库连接,释放资源
conn.close()

关键细节说明

  • 数据库初始化:用sqlite3.connect()自动创建/连接数据库,CREATE TABLE if not exists避免重复创建表导致的报错。
  • 图形化输入easygui.multenterbox提供了简单直观的可视化输入界面,比命令行输入更友好。
  • 安全插入数据:使用参数化查询(?占位符)而非字符串拼接,能有效防范SQL注入攻击,同时让代码更规范。
  • 事务提交:插入数据后必须调用conn.commit(),否则数据只会停留在内存中,不会持久化到数据库文件。
  • 资源清理:操作结束后关闭数据库连接,避免不必要的资源占用。

内容的提问来源于stack exchange,提问作者user8936818

火山引擎 最新活动