0
点赞
收藏
分享

微信扫一扫

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


代码

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 条评论