作者alansyue (alansyue)
看板Python
標題[問題] SQLite insert 問題
時間Sat Jun 23 14:36:15 2018
大家好,小弟是 Python 新手,非本科系自學
最近在學習將 Python 的資料匯入 SQLite
我先建一個SQLite的資料表
import sqlite3
conn = sqlite3.connect('sqlite01.db')
print("Opened database successfully")
c = conn.cursor()
c.execute('''CREATE TABLE worknowapp_job
(ID INT PRIMARY KEY NOT NULL,
JOB_NAME CHAR NOT NULL,
JOB_URL CHAR NOT NULL);''')
print("Table created successfully")
conn.commit()
conn.close()
接著我想試將設定好的變數寫入 SQLite,程式碼如下:
import sqlite3
name ="測試1"
url = "/jobs/10101"
conn = sqlite3.connect('sqlite01.db')
c = conn.cursor()
print ("Opened database successfully")
c.execute("INSERT INTO worknowapp_job (ID,JOB_NAME,JOB_URL) \
VALUES (1,name,url )");
conn.commit()
print("Records created successfully")
conn.close()
但卻出現以下的錯誤訊息:
---> 10 c.execute("INSERT INTO worknowapp_job (ID,JOB_NAME,JOB_URL)
VALUES (1,name,url )");
11
12 conn.commit()
OperationalError: no such column: name
我查了網路上教學文章,沒有找到是匯入變數,通常都是直接寫一個數字或字串
因此想請問各位大大這個 error 該怎麼解決,非常感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.105.233.203
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1529735779.A.7A0.html
推 s8300355: c.execute("INSERT INTO worknowapp_job (ID,JOB_NAME,J 06/23 15:38
→ s8300355: 執行的地方改成這樣應該可以 06/23 15:39
→ s8300355: VALUES (%d,'%s','%s')" % (1, name, url) 06/23 15:40
→ s8300355: 或者這樣 VALUES (?, ?, ?)" , (2, name, url) 06/23 15:42
推 MAGICXX: 推薦用%s ?很容易爆炸 06/23 16:15
→ alansyue: 成功了,謝謝樓上兩位大大 06/24 01:20