我尝试使用以下行删除SQLite数据库中的行:
conn = sqlite3.connect('test.db')
c = conn.cursor()
memID = str(idBox.get())
#c.execute('DELETE FROM Test WHERE memberID = idBox.get()')
因此,我试图使用tkinter条目(idBox)从表中删除,但得到以下错误:
Tkinter回调中出现异常 回溯(最近一次呼叫): 文件“C:\Program Files\Python36\lib\tkinter_uinit_uu.py”,第1699行,在调用 返回自我功能(*参数) 文件“I:/Onedrive/PycharmProjects/TKinter/MainProgram/主.py“,第36行,在delete_data_entry中 c、 execute('DELETE FROM Test WHERE memberID=idBox.get()') sqlite3.OperationalError:靠近“(”:语法错误
我已经坚持了一段时间了,希望能得到一些帮助
其他代码(正在创建memberid变量):
^{pr2}$
考虑@Philip Blonde的评论和语法
问题是您将
^{pr2}$44ba195d
作为memberID
传递,而sqlite需要其他东西,可能是整数。这个将导致如果memberID为整数
检查您从
idBox
获得的内容。在编辑:由于您使用
uuid
作为memberId,您必须将SQL语句更改为如果数据类型不是整数,则必须用引号括起来。在
警告:请记住,这些SQL语句容易受到SQL注入的攻击。不应使用字符串串联(+)或字符串参数插值(%)将变量传递到SQL查询字符串。可以输入
' OR memberID LIKE '%1%
并删除memberID包含值1的所有行。在相关问题 更多 >
编程相关推荐