数据库锁定错误- sqlite3和python的问题



我在向数据库添加信息时遇到了一些麻烦。我得到的问题是,我的代码控制台显示&;operationalerror &;。有人知道怎么解决这个问题吗?我的代码如下所示:

import sqlite3

def add_data(cursor):
a         = input("Insert 'a':")
b         = input("Insert b:")
c        = input("Insert c:")
d        = input("Insert d:")

expression=f'INSERT INTO data VALUES ( {a}, {b}, {c}, {d});'
cursor.execute(expression)
def main(db_file):
con, cur = get_connection(db_file)
adddata = add_data(cur)
print(row)
main('data.db')

您可以将当前代码转换为以下代码:

...
def add_data(cursor):
id       = input("Insert 'id':")
abbrev   = input("Insert abbrev:")
latin    = input("Insert latin:")
common   = input("Insert common:")

expression=f'INSERT INTO species VALUES (?,?,?,?)'
cursor.execute(expression,(id,abbrev,latin,common,))
def main(db_file):
con, cur = get_connection(db_file)
adddata = add_data(cur)
con.commit()    
main('data.db')

,

  • 多余的for游标被删除
  • DML语句已提交
  • 变量的占位符应转换为问号,而不是显式的变量名,因为更安全execute函数
  • 中的参数列表为包含四个元素的元组

最新更新