无法在sqlite3中参数化LIMIT和OFFSET

时间:2018-11-05 18:21:13

标签: python-3.x sqlite

为什么以下代码给出语法错误“ sqlite3.OperationalError:在“?”附近:语法错误

import sqlite3

connection = sqlite3.connect('data.db')

cursor = connection.cursor()

table = "device_store"
uuid = "bbebe39e-fe2e-4817-b022-a3ef13bd6283"
page = 1
POSTS_PER_PAGE = 10
query = "SELECT * FROM ? WHERE uuid=? LIMIT ? OFFSET ?"
result = cursor.execute(query, (table, uuid, POSTS_PER_PAGE, 0))
rows = result.fetchall()
connection.close()
print("==>> Printing rows <<==")
print(rows)

1 个答案:

答案 0 :(得分:2)

该错误是由FROM ?中的占位符引起的,而不是其他引起的。表名不能作为参数传递,必须在语句中进行硬编码。