作者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://webptt.com/cn.aspx?n=bbs/Python/M.1529735779.A.7A0.html
1F:推 s8300355: c.execute("INSERT INTO worknowapp_job (ID,JOB_NAME,J 06/23 15:38
2F:→ s8300355: 执行的地方改成这样应该可以 06/23 15:39
3F:→ s8300355: VALUES (%d,'%s','%s')" % (1, name, url) 06/23 15:40
4F:→ s8300355: 或者这样 VALUES (?, ?, ?)" , (2, name, url) 06/23 15:42
5F:推 MAGICXX: 推荐用%s ?很容易爆炸 06/23 16:15
6F:→ alansyue: 成功了,谢谢楼上两位大大 06/24 01:20