如何向SQLite数据库录入数据?附Python实现代码示例
如何向SQLite数据库录入数据?
嘿,我来给你展示一个实用的实现方案——用Python结合sqlite3和easygui库,完成向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




