Python sqlite3.OperationalError: near “?“: syntax error

阅读 88

2022-09-10


代码

con = sqlite3.connect('db.sqlite3')
cur = con.cursor()
sql = 'SELECT id FROM ? WHERE source_id = ?'
cur.execute(sql, ('article_table', 41945,))
one = cur.fetchone()
con.close()

报错

sqlite3.OperationalError: near "?":

原因

sqlite3占位符(?)不能用于列或表的名称。
占位符用于从数据库中插入或检索数据的值,以便防止SQL注入。

解决

con = sqlite3.connect('db.sqlite3')
cur = con.cursor()
sql = 'SELECT id FROM article_table WHERE source_id = ?'
cur.execute(sql, (41945,))
one = cur.fetchone()
con.close()


精彩评论(0)

0 0 举报