我尝试使用rusqlite执行一个简单的sqlite语句,但每次都得到一个错误。
let seconds = 1;
conn.execute(
"DELETE FROM session WHERE created < DATETIME('now', '?1 seconds')",
params![seconds],
)?;返回Err(InvalidParameterCount(1, 0))。
如果我使用静态字符串而不是参数,则查询可以工作。例如。
conn.execute(
"DELETE FROM session WHERE created < DATETIME('now', '1 seconds')",
params![seconds],
)?;我怎么才能把参数放进去呢?
发布于 2020-09-15 15:54:36
您正在字符串中编写?1,这不是一个参数,而是几个普通的字符。因此,当您指定实际参数时,它没有匹配项,因为查询没有任何参数占位符。
你想要这样的东西(未经测试):
let seconds = 1;
conn.execute(
"DELETE FROM session WHERE created < DATETIME('now', ?1)",
params![format!("{} seconds", seconds)],
)?;https://stackoverflow.com/questions/63897366
复制相似问题