删除mySQL中的查询

时间:2009-02-03 18:44:18

标签: mysql propel

阅读文档的底部,特别是:

  

“您仍然可以检索已删除对象的属性,但无法保存已删除的对象。”

如何?仅当您启用设置时才会这样做吗?

3 个答案:

答案 0 :(得分:0)

删除的对象刚刚在数据库中删除并标记为已删除。你仍然可以在php中访问它,例如向用户显示一些再见数据(“产品XYZ被删除”)。

答案 1 :(得分:0)

我认为'object'是指已经加载到内存中的对象。它说你仍然可以查看它的属性,但是如果你试图调用save它将尝试执行一个UPDATE SQL语句,该语句将失败,因为该记录实际上已被删除。

答案 2 :(得分:0)

我对Propel的确切运作方式不是很熟悉。但了解数据库(MySQL)和ORM层(Propel)之间的区别非常重要。 Propel是一种抽象,它通过将数据包装在对象中来表示数据库中的行。然后,您可以通过调用相应对象上的方法来更改或删除此类行,Propel将生成并执行所需的SQL语句。

因此,在执行SQL DELETE语句之后,对象包装器仍将保留在删除行之前加载的数据。但它将不再允许您修改行数据,因为Propel无法将这些更改写入。