这是错误提示: 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 ![]() 你这个有两列就得给他两个问号填两个值,不然就要指名填哪些列。 而且最后你传入的 tuple 只有一个值的话,得加个逗号写成(value,)表示你传入了一个 tuple |
![]() | 4 asd103 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 (?) |