0

我已经构建了一个数据库,但是当我遍历我的数据以填充它时,我收到以下错误:

OperationalError: no such column: tmp1

代码:

with con:
    cur = con.cursor()
    cur.execute("CREATE TABLE TESTTABLE(X REAL, Y REAL)")

for i in xrange(0,5):
   tmp1 =  array[i,0]
   tmp2 =  array[i,1]
   with con:
        cur.execute("""INSERT INTO TESTTABLE VALUES(tmp1,tmp2)""")

基本上我有一个大数组,我想将其传输到数据库中。这可能不是最有效的方法。建议?

4

1 回答 1

3

如果要将值插入一行,则需要将这些值作为 SQL 参数传递给.execute()调用:

with con:
    for i in xrange(0,5):
        tmp1 = array[i, 0]
        tmp2 = array[i, 1]
        cur.execute("""INSERT INTO TESTTABLE VALUES(?, ?)""", (tmp1, tmp2))

字符是参数,它们按从第二个参数到元组的?值按顺序填充。.execute()上面的代码会将数字 0 到 4 成对插入到数据库中。

SQL 代码中的名称与您在 Python 中定义的名称没有关联,值只能显式传入。

于 2013-05-09T14:24:54.607 回答