sqlite - rusqlite 返回 Err(InvalidParameterCount(1, 0))

标签 sqlite rust rusqlite

我尝试使用 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],
)?;
我如何在那里获取参数?

最佳答案

您正在写 ?1在字符串中,这不是参数,而是普通的几个字符。因此,当您指定实际参数时,它没有匹配项,因为查询没有任何参数占位符。
你想要这样的东西(未经测试):

let seconds = 1;

conn.execute(
    "DELETE FROM session WHERE created < DATETIME('now', ?1)",
    params![format!("{} seconds", seconds)],
)?;

关于sqlite - rusqlite 返回 Err(InvalidParameterCount(1, 0)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63897366/

相关文章:

rust - 我们如何在多个调用中保存和检索结构中的变量?

rust - 如何迭代结构的元素?

sqlite - 如何从多个线程通过 rusqlite 使用 SQLite?

Rust rusqlite 无法插入行

iphone - 如何将 sqlite3_column_blob 与 NSData 一起使用

iphone - 如何从SQLite检索图像并在UIImageView中显示

python - 使用 Django 将数千条记录插入 SQLite 表的有效方法是什么?

android - SQLite数据库错误: SQLiteLog: (1) near "s": syntax error

rust - 如何使用 Hyper 通过代理访问 HTTPS 站点?