【发布时间】:2019-05-23 02:38:41
【问题描述】:
我想在我的 SQL 表中插入列。列名是一个变量(从数组中读取)。
我收到此错误:sqlite3.OperationalError: near "(": 语法错误
for i in range(0, 100):
conn.cursor().execute("ALTER TABLE TABLENAME ADD (?) real", (arr[i]))
【问题讨论】:
-
尝试删除列名周围的括号。
-
我认为您不能在 DDL 语句中使用参数(即创建或更改表)。您必须将语句构建为文字字符串,即
"ALTER TABLE TABLENAME ADD " + arr[i] + " real"。确保arr[i]已通过验证,因为不幸的是,这种方法会使您容易受到注入攻击。