猿问

Sqlite3的DateTime函数中的查询参数绑定

我正在使用 python 并尝试按如下方式插入到 sqlite3 表中:

database.execute("INSERT INTO EXAMPLE VALUES (?, ?, DATETIME('now','+? seconds'), ?);", (id, statement, time_duration, access))

我得到以下异常:

ProgrammingError: Incorrect number of bindings supplied. The current statement uses 3, and there are 4 supplied.

我相信这是因为出于某种原因,查询参数绑定在DATETIME('now','+? seconds);. 如果我在查询中硬编码 +60 秒左右,这很好用。

有没有办法让 sqlite3 在那里插入提供的绑定?


慕哥6287543
浏览 107回答 1
1回答

梵蒂冈之花

占位?符必须像这样连接:INSERT INTO EXAMPLE VALUES (?, ?, DATETIME('now', ? || ' seconds'), ?);+在这种情况下不需要。此外,以与提供的值相同的顺序包含列名也是一个好习惯:INSERT INTO EXAMPLE(col1, col2, col3, col4) VALUES (?, ?, DATETIME('now', ? || ' seconds'), ?);
随时随地看视频慕课网APP

相关分类

Python
我要回答