【问题标题】:How to safely detele a record?如何安全地删除记录?
【发布时间】:2021-07-27 06:20:11
【问题描述】:

上下文

我创建了一个处理待办事项的应用程序。我希望能够根据从 url 获得的 id 删除待办事项

import vweb

struct App {
    vweb.Context
}

[post]
["/todo/:id/delete"]
pub fn (mut app App) delete_todo_response(id string) vweb.Result {
  db := sqlite.open("dist/database.db") or {
    return app.redirect("/todo")
  }

  db.exec_none('DELETE FROM todo WHERE id = $id') // id is not escaped
}

fn main() {
  vweb.run<App>(80)
}

问题

如您所见,id 没有转义。我觉得这不是执行此操作的理想且安全的方式。

问题

  • 如何使用exec()exec_one()exec_none() 转义值?
  • ORM 是否能够基于结构为我删除记录,就像使用 select 和 insert 一样?

【问题讨论】:

    标签: orm vlang


    【解决方案1】:

    据我所知,没有标准的方法来逃避 sqlite 查询。 但是,您确实可以使用 ORM。 如果你声明你的 Todo 结构,应该这样做:

    sql db {
        delete from Todo where id == id
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 2017-04-25
      • 1970-01-01
      • 2012-12-10
      相关资源
      最近更新 更多