处理此问题需要什么SQLite列数据类型?

处理此问题需要什么SQLite列数据类型?,sqlite,python-3.7,Sqlite,Python 3.7,我得到了一个常见的错误似乎 sqlite3无法识别的令牌: 当返回值是数字/char的组合且字段中存在其他特殊字符时,会发生此错误 有时,如果字段仅包含数字或字符,而不包含组合,则该选项有效 我选择的下拉列表(tableGrade)每次都应该找到一个精确的匹配项,因为下拉列表是从同一个表/列填充的 另外,我可以对我的查询做些什么来防止注入攻击 < /P> < P>由于该列包含数值和/或字符,因此您必须考虑其数据类型是“代码>文本< /代码>,尽管 >SQLite 在数据类型方面不严格,因为您可

我得到了一个常见的错误似乎

sqlite3无法识别的令牌:

当返回值是数字/char的组合且字段中存在其他特殊字符时,会发生此错误

有时,如果字段仅包含数字或字符,而不包含组合,则该选项有效

我选择的下拉列表(tableGrade)每次都应该找到一个精确的匹配项,因为下拉列表是从同一个表/列填充的

另外,我可以对我的查询做些什么来防止注入攻击


< /P> < P>由于该列包含数值和/或字符,因此您必须考虑其数据类型是“代码>文本< /代码>,尽管<强> >SQLite 在数据类型方面不严格,因为您可以将列的数据类型定义为“代码> INT/CODE”,并将其存储在任何类型的文本中。 您必须更改的是选择数据的方式。
必须像这样使用占位符

(参数标记):

 def material_code(self):

    tableType = self.comboBox.currentText()
    tableGrade = self.comboBox_2.currentText()
    tableType = tableType.lower()

    c.execute('SELECT prefix FROM ' + tableType + ' WHERE grade = ' + tableGrade)

    prefix_code = c.fetchone()
    print(prefix_code[0])

    conn.commit()

其中,
tableType
是保存表格名称的变量,
tableGrade
是保存要筛选的等级的字符串值。

谢谢您的帮助,我下班回家后会更改代码!很好用!我之前通过实验差点解决了这个问题,但你帮我解决了…我下次会知道的,再次感谢:)
c.execute("SELECT prefix FROM " + tableType + " WHERE grade = ?", (tableGrade,))