2016-11-23 78 views
-2

SQLITE INSERT语句有这样的事情:用户输入

c.execute("INSERT INTO data(borrow, dateTimeIN) VALUES(1, ?)", datetime('now'), "WHERE ic = '?')", x) 

基本上这个语句将借项目和日期,当特定用户借用的项目时间。

或者

c.execute("INSERT INTO data(borrow, dateTimeIN) VALUES(1, 'datetime()') WHERE ic = ?", x) 
+0

您可以在SQL查询中使用更多'?'来向查询添加更多信息。 – furas

+0

@furas er,我不明白 – gcxh

+0

'VALUES(1,?)WHERE ic ='?')“,datetime('now'),x' – furas

回答

0

exectute接受参数,但他们遵循的是SQL模板作为一个元组。

c.execute("INSERT INTO data(borrow, dateTimeIN) VALUES(1, ?) WHERE ic = ?)", 
    (datetime.datetime.now(), x)) 

?占位符不能用引号括起来'execute将采取把它们串绕参数x的价值关怀。

编辑:

但你的SQL不会起作用,因为INSERT不支持where条款,至少在给出values

sqlite3.OperationalError: near "where": syntax error 
+0

如果我更改为'UPDATE'语句? (“,UPDATE data SET(borrow = 1,dateTimeIN =?)WHERE ic =?”,(dt,(x,)))?我面临sqlite3.OperationalError:接近“(”:语法错误 – gcxh

+0

阅读['UPDATE'](https://sqlite.org/lang_update.html)语法。'SET'的列不能包含在一对'()'。 – 2016-11-23 09:12:50

+0

问题解决!谢谢! – gcxh