3

另一个问题。我正在尝试做:

self.table = 'table'
a = 'column'
b = 'value'

c.execute('INSERT INTO ? (?) VALUES (?)', (self.table, a, b))

但我越来越

<class 'sqlite3.OperationalError'>:near "?": syntax error

同时,

c.execute('INSERT INTO {0} ({1}) VALUES ({2})'.format(self.table, a, b))

工作完美,除了安全问题。

我意识到我不是第一个遇到这个问题的人,但我还没有找到适合我的解决方案。

4

1 回答 1

8

表名、列名不能参数化。尝试跟随。

self.table = 'table'
b = 'value'

c.execute('INSERT INTO {} ({}) VALUES (?)'.format(self.table, a), (b,))
于 2013-08-10T06:41:18.380 回答