【问题标题】:SQLite Placeholder error in Python scriptPython脚本中的SQLite占位符错误
【发布时间】:2018-05-11 21:19:09
【问题描述】:

我目前正在开发一个不和谐的机器人,它可以在服务器中实现某种经济。

在实现向 SQLite 数据库添加项目的功能时,我遇到了这个问题:

    cur.execute("INSERT INTO items (?,?,?,?,?,?)", item)
sqlite3.OperationalError: near "?": syntax error

我已经切换到“?”作为占位符感谢this 帖子并找到this 帖子但它对我没有多大帮助。

所有值都是通过不和谐命令的参数获取的,并转换为字符串或整数。 我使用 SQLiteStudio 并将数据类型分别设置为“文本”和“整数”。

conn = create_connection(db_file)
        with conn:
            cur = conn.cursor()
            item = (itemname, price, info_text, buy_text, use_text, role,)
            market = (itemname, stock,)
            cur.execute("INSERT INTO items (?,?,?,?,?,?)", item)
            cur.execute("INSERT INTO market (?,?)", market)

【问题讨论】:

  • INSERT 语句为INSERT INTO table (col1, col2, ...) VALUES (val1, val2, ...), ...。如果要为每一列插入值,则列列表是可选的。

标签: python-3.x sqlite discord.py


【解决方案1】:

您的 SQL 查询无效。 INSERT 的语法是

INSERT INTO table VALUES (...)
INSERT INTO table (columns) VALUES (...)

所以您应该能够将查询更改为

cur.execute("INSERT INTO items VALUES (?,?,?,?,?,?)", item)

这将解决它。 (docs)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-10
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 2015-12-09
    • 2017-11-09
    • 2015-09-04
    相关资源
    最近更新 更多