[英]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.