首页 > 解决方案 > Sqlite 3:打开数据库时出错提供的绑定数量不正确。当前语句使用 1,提供了 4 个

问题描述

我已经尝试在名称后添加逗号和“值”中的问号,并且我的括号出现语法错误。

@app.route("/Disease/new", methods = ["POST"])
def addDisease():
    newDisease = {}
    conn = None
    try:
        jsonPostData = request.get_json()
        Name = jsonPostData["Name"]

        conn = sqlite3.connect("./dbs/ContactTracer.db")
        conn.row_factory = sqlite3.Row
        sql = """
            INSERT INTO Disease(Name) VALUES(?)
        """
        cursor = conn.cursor()
        cursor.execute(sql, (Name))
        conn.commit()
        sql = """
            SELECT Disease.ID, Disease.Name
            From Disease
            Where Disease.ID = ?
        """
        cursor.execute(sql,(cursor.lastrowid,))
        row = cursor.fetchone()
        newDisease["ID"] = row["ID"]
        newDisease["Name"] = row["Name"]
    except Error as e:
        print(f"Error opening the database{e}")
        abort(500)
    finally:
        if conn:
            conn.close()

    return newDisease

标签: pythonsqlite

解决方案


删除()并检查是否INSERT成功

cursor.execute(sql, Name)
...
if cursor.lastrowid:
    cursor.execute(sql, cursor.lastrowid)

推荐阅读