我正在尝试将字符串插入到 python 中的 SQLite Select 语句中。当我尝试这段代码时:
cur.execute("SELECT * FROM DB WHERE employeeNum = '?'",(empNum,))
我收到此错误:
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 1 supplied.
当我尝试此代码时:
cur.execute("SELECT * FROM DB WHERE employeeNum = '",empNum,"'")
我收到此错误:
TypeError: function takes at most 2 arguments (3 given)
如何查询这个字符串?抱歉,我是Python新手。任何帮助将不胜感激!
最佳答案
不要使用字符串格式将查询参数插入到查询中 - 这将使 SQL 注入(inject)成为可能,您可能会遇到需要转义的字符、数据类型转换等问题。
消除 ?
周围的引号并继续使用参数化查询参数:
cur.execute("SELECT * FROM DB WHERE employeeNum = ?", (empNum, ))
?
周围的引号使 sqlite 将 ?
解释为字符串,而不是占位符。
另请参阅类似问题:
关于python - 在Python SQLite语句中插入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24948269/