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))

文字はパラメーターであり、?2 番目の引数から.execute()タプルまでの値が順番に入力されます。上記のコードは、0 から 4 までの数字をペアとしてデータベースに挿入します。

SQL コード内の名前は、Python で定義した名前と相関関係がなく、値は明示的にのみ渡すことができます。

于 2013-05-09T14:24:54.607 に答える