2016-11-23 76 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