簡體   English   中英

將列表中的值插入表中(Python,sqlite3)

[英]Insert values from list into table (Python, sqlite3)

我有這個簡單的代碼,我無法正常工作。

import sqlite3

conn = sqlite3.connect('db\\books')
c = conn.cursor()

col = []

title = input('title')
text = input('text')
tags = input('tags')

col.append(title)
col.append(text)
col.append(tags)

c.executescript("INSERT INTO books (title,text,tags) "
                "VALUES (col[0],col[1],col[2])")

db代碼(連接和普通插入)有效,但是當我要執行上面看到的操作時,問題出現了。

我要實現的目標是讓用戶將數據插入db(所有字符串)中。 我不知道這是否是正確的方法...

我怎樣才能做到這一點 ?

謝謝

這行:

c.executescript("INSERT INTO books (title,text,tags) "
                "VALUES (col[0],col[1],col[2])")

不是有效的SQL。 現在,由於c被定義為游標,因此您可以直接從中運行execute ,而不是executescript ,后者是根據連接來創建游標並執行SQL的。 只需用以下內容替換該行即可:

c.execute("INSERT INTO books (title,text,tags) "
          "VALUES (?,?,?)", col)

上面的SQL使用“ qmark樣式”占位符,該占位符從其后的參數列表中獲取實際值。

一種選擇是將最后一行更改為:

c.execute("INSERT INTO books (title,text,tags) VALUES (?,?,?)", (col[0], col[1], col[2]))

完成更改后,然后提交並關閉連接:

conn.commit()
conn.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM