【发布时间】:2019-09-08 03:00:18
【问题描述】:
在对我的项目中保存到数据库的部分进行编码时,我似乎找不到正确的方法来将数据插入到表中。
应该更改/修复什么以使变量与 SQLite3 一起运行?
旁注 - 我试图插入的元素直接来自列表。变量sqluserrequest 表示列表的单个元素,格式为字符串。
现在,我收到以下语法错误:
line 42, in updatetable
""", (sqluserrequest,))
OperationalError: near "VALUES": syntax error
截至这篇文章,我已经尝试直接从列表 I.E 中调用我需要的元素。 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 = 要保存的不和谐(列表元素)
这是 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
光标在它们之间发生变化,但据我所知,这不应该影响程序,因为它是在不同的连接点完成的。
脚本的目的是在discordid中保存单个字符串,并将discord id对应的元素时间更新1。 通过更改变量,我只收到了上面的 SQL 错误,但程序最接近工作的是这些“接近 VALUES 语法”错误。有人能看到我的错误吗?谢谢
【问题讨论】: