Python 是什么阻止用户被插入到表中?

Python 是什么阻止用户被插入到表中?,python,syntax,sqlite,Python,Syntax,Sqlite,在对项目中保存到数据库的部分进行编码时,我似乎找不到正确的方法将数据插入到表中。 为了让变量与SQLite3一起运行,应该更改/修复什么? 旁注-我试图插入的元素直接来自列表。变量sqluserrequest表示列表中的单个元素,格式为字符串 现在,我发现这个语法错误: line 42, in updatetable """, (sqluserrequest,)) OperationalError: near "VALUES": syntax error 在这篇文章中,我已经尝试直接从

在对项目中保存到数据库的部分进行编码时,我似乎找不到正确的方法将数据插入到表中。 为了让变量与SQLite3一起运行,应该更改/修复什么? 旁注-我试图插入的元素直接来自列表。变量
sqluserrequest
表示列表中的单个元素,格式为字符串

现在,我发现这个语法错误:

line 42, in updatetable
    """, (sqluserrequest,))
OperationalError: near "VALUES": syntax error
在这篇文章中,我已经尝试直接从列表中调用我需要的元素,即
usertags[y]
,其中y递增以收集列表中的每个元素,可以追溯到:

line 33, in updatetable
    VALUES(?)""", (usertags[y]))
ValueError: parameters are of unsupported type
我还尝试将元组更改为列表文字,但效果甚微:

line 42, in updatetable
    """, [sqluserrequest])
sqlite3.OperationalError: near "VALUES": syntax error
我还研究了字符串格式,但这似乎没有帮助

sqluserrequest=要保存的discordid(列表元素)

以下是SQL脚本:

cursor.executescript("""
    CREATE TABLE Users(
    discordid VARCHAR (37) PRIMARY KEY,
    time VARCHAR (5)
    );
    """) #create 

update.execute(""" 
    INSERT INTO Users(discordid)
    VALUES(?)""", (sqluserrequest,)) #insert


update.execute("""
        UPDATE Users
        SET time = time + 1
        WHERE name = VALUES(?)
        """, (sqluserrequest,)) #update 
光标在它们之间变化,但据我所知,这不会影响程序,因为它是在不同的连接点上完成的

脚本的目的是在discord中保存单个字符串,并将与discord id对应的元素时间更新1。
通过改变变量,我只收到上面的SQL错误,但程序最接近于工作的是这些“近似值语法”错误。有人能看出我的错误吗?谢谢你这里有SQL语法错误:

update.execute("""
    UPDATE Users
    SET time = time + 1
    WHERE name = VALUES(?)
    """, (sqluserrequest,)) #update 
你应该说
WHERE name=?

对于此错误:

line 33, in updatetable
    VALUES(?)""", (usertags[y]))
ValueError: parameters are of unsupported type

您传入的SQL参数错误。它需要是一个元组(或列表),但您只需在Parethes中输入一个值。用一个项目指定元组的右键是带有额外逗号的
(usertags[y],)

这里有SQL语法错误:

update.execute("""
    UPDATE Users
    SET time = time + 1
    WHERE name = VALUES(?)
    """, (sqluserrequest,)) #update 
你应该说
WHERE name=?

对于此错误:

line 33, in updatetable
    VALUES(?)""", (usertags[y]))
ValueError: parameters are of unsupported type

您传入的SQL参数错误。它需要是一个元组(或列表),但您只需在Parethes中输入一个值。使用一个项指定元组的权限是带有额外逗号的
(usertags[y],)

谢谢,我已经对update语句进行了这些更改,并将参数更改为元组,但是现在出现了不支持的数据类型错误
InterfaceError:绑定参数0时出错-可能是不支持的类型。
@Dandy所以错误说明了这一点。您需要检查
usertags[y]
是否受sqlite库的支持和理解。例如,传递一个随机对象通常不起作用,因为sqlite库不知道如何用C表示它(因为sqlite API是用C编写的)!我确保数据类型是C接受的,然后我将create table脚本中的预期数据类型从INTEGER更改为INT。感谢您的响应@adrtamThank you,我已对update语句进行了这些更改,并将参数更改为元组,但现在我遇到了一个不受支持的数据类型错误
InterfaceError:绑定参数0时出错-可能是不支持的类型。
@Dandy所以错误说明了这一点。您需要检查
usertags[y]
是否受sqlite库的支持和理解。例如,传递一个随机对象通常不起作用,因为sqlite库不知道如何用C表示它(因为sqlite API是用C编写的)!我确保数据类型是C接受的,然后我将createtable脚本中的预期数据类型从INTEGER更改为INT。感谢您的回复@adrtam