这是错误提示: db.execute('insert into Comment values ?', (request.form['content'])) OperationalError: near "?": syntax error
这是执行的操作 db.execute('insert into Comment values ?', (request.form['content']))
这是数据库 create table Comment( cid integer primary key autoincrement, content string not null );
请问我究竟错在哪了?
1
linnchord 2017-05-29 00:38:07 +08:00
|
2
kindjeff 2017-05-29 08:38:54 +08:00 via iPhone
你得这么写,'insert into TABLE values (?, ?, ?, ?)', v1, v2, v3, v4
|
3
kindjeff 2017-05-29 08:42:39 +08:00 via iPhone 1
你这个有两列就得给他两个问号填两个值,不然就要指名填哪些列。
而且最后你传入的 tuple 只有一个值的话,得加个逗号写成(value,)表示你传入了一个 tuple |
4
tumbzzc 2017-05-29 09:24:46 +08:00 via Android
db.execute('insert into Comment values ?', (request.form['content'],))
像楼上所说,tuple 如果只有一个值,需要写成(a,) |
6
HxSeek OP @kindjeff 第一列是主键,默认递增加 1,就不用传输吧? 现在只需要传第二列的? 但是我写出像 tumbzzc 那样也不行··
|
7
JamesMackerel 2017-05-29 10:57:09 +08:00 via iPhone
推荐一个 ORM。
Pony ORM。 |
8
aimoji 2017-05-29 11:46:57 +08:00
'insert into Comment values (null,?)', (request.form['content'],)
|
10
kindjeff 2017-05-29 13:35:25 +08:00 via iPhone
@HxSeek 那你想传哪些行你也得告诉数据库啊……得写成 insert into TABLE (content) values (?)
|