首页 > 解决方案 > python中的sqlite3数据库查询

问题描述

我尝试从我正在工作的应用程序的后端执行搜索查询,并得到以下响应:

Traceback(最近一次调用最后一次):文件“backend.py”,第 30 行,在搜索中 cur.execute("SELECT * FROM PlanInfo WHERE Location=?", self.NmRqst.text) ValueError: parameters are unsupported type

我有以下代码:

def connectfile(self):
    conn = sqlite3.connect("TestTrace.db")
    cur = conn.cursor()
    cur.execute(
        "CREATE TABLE IF NOT EXISTS PlanInfo (Plan Number TEXT, Tracing Number TEXT, Submitted By TEXT, "
        "Location TEXT)")
    conn.commit()
    conn.close()

def search(self):
    conn = sqlite3.connect("TestTrace.db")
    cur = conn.cursor()
    cur.execute("SELECT * FROM PlanInfo WHERE Location=?", self.NmRqst.text)
    rows = cur.fetchall()
    conn.close()
    return rows

self.NmRqst.text是接受用户输入以进行数据库查询的 QLineEdit...

随意纠正你认为合适的问题!

我已经编辑了代码行,

def connectfile(self):
    conn = sqlite3.connect("TestTrace.db")
    cur = conn.cursor()
    cur.execute(
        "CREATE TABLE IF NOT EXISTS PlanInfo (Plan_Number TEXT, Tracing_Number TEXT, Submitted_by TEXT, "
        "Location TEXT)")
    conn.commit()
    conn.close()

def search(self):
    conn = sqlite3.connect("TestTrace.db")
    cur = conn.cursor()
    cur.execute("SELECT * FROM PlanInfo WHERE Location=?", str(self.NmRqst.text,))
    rows = cur.fetchall()
    conn.close()
    return rows

...我收到以下错误:

回溯(最后一次调用):文件“backend.py”,第 30 行,在搜索 cur.execute("SELECT * FROM PlanInfo WHERE Location=?", str(self.NmRqst.text,)) sqlite3.ProgrammingError: Incorrect提供的绑定数量。当前语句使用 1,提供了 64 个。

标签: pythonsqlitedatabase-connection

解决方案


推荐阅读