【问题标题】:Getting Operational Error while submitting data from form in Python在 Python 中从表单提交数据时出现操作错误
【发布时间】:2016-01-20 16:35:38
【问题描述】:

我想将输入(用户信息)提交到用户表中,但出现操作错误。

  from tkinter import *
    from tkinter.messagebox import *
    import sqlite3

def submit():
    connect = sqlite3.connect(r'D:\ACCTGSYSTEM.db')
    c = connect.cursor()
    c.executemany('INSERT INTO users(Fname, Lname, Uname, Pass) VALUES (?,?,?,?,)',(fname.get(),lname.get(),uname.get(),passw.get()))

SCREEN SHOT OF OUTPUT

【问题讨论】:

  • 我想你可能忘记了“;”?
  • 删除(?,?,?,?,)中的最后一个逗号
  • 这似乎与 tkinter 无关。您应该从代码中删除它,并删除 tkinter 标记。
  • 感谢您,但出现了另一个错误:sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用 4,提供了 2 个。
  • @bryan 我有一个使用 tkinter 的表单

标签: python tkinter sqlite


【解决方案1】:

我无法检查。

在单词executemany()中查看单词many

executemany("...", data) 期望列表包含许多这样的数据集

data = [ 
    (fname1, lname1, uname1, passw1), 
    (fname2, lname2, uname2, passw2), 
    (fname3, lname3, uname3, passw3), 
]

如果你有一组数据,你仍然必须使用列表

data = [ 
    (fname1, lname1, uname1, passw1), 
]

不是单组数据

data = (fname1, lname1, uname1, passw1)

或将execute("...", data) 与单组数据一起使用

data = (fname1, lname1, uname1, passw1)

参见文档中executemany 的示例:https://docs.python.org/2/library/sqlite3.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-28
    • 2014-02-25
    • 2018-11-24
    • 2017-08-24
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多