Solar Model数据库操作之删除数据
Solar_Sql_Model::delete()删除数据
actionDelete($id):
方法Solar_Sql_Model::delete($where) 中的参数$where可能有两种形式,分别是字符串型和数组型的条件语句,你可以选择你喜欢的形式。
注意
- 这里要分别删除文章和文章的内容,不能通过一条语句进行删除!
- 该方法返回的是删除记录的条数,删除不成功返回0。
- 该方法可以通过条件删除多条记录。
Solar_Sql_Model_Record::delete()删除一条记录
actionDelete2($id):
要得到Solar_Sql_Model_Record类的对象必须调用Solar_Sql_Model::fetch()或其它方法,再调用该类的delete()方法,所以这种形式的删除数据首先要查询数据再删除,所以这种方法速度比较慢点。
注意
-
$item->delete()返回为NULL,必须通过$item->isDelete()方法来判断是否已删除数据。 - 这种方法也不能同时将article与content删除,必须分两步删除。
也可以通过多表联合查询方法将content也查询出来再进行删除操作,源码如下:
Solar_Sql_Model_Collection::deleteOne()删除一条记录
actionDelete()源码:
通过$list = $this->_model->articles->fetchAll(array('order' => array('id'))) 得到了articles的全部数据,使用$list->deleteOne(0) 就删除$list 中的第一条记录了。 注意 deleteOne() 方法返回为NULL
Solar_Sql_Model_Collection::deleteAll()删除多条记录
actionDelete()源码:
使用`$this->list->deleteAll()就删除了所有记录,该方法返回的也是为空。

本文介绍了Solar Model中删除数据的几种方法,包括Solar_Sql_Model::delete()用于删除多条记录,Solar_Sql_Model_Record::delete()删除单条记录,Solar_Sql_Model_Collection::deleteOne()删除集合中的一条记录,以及Solar_Sql_Model_Collection::deleteAll()删除所有记录。删除操作需要注意条件语句的使用,并且在某些情况下需要先查询数据再删除。
580

被折叠的 条评论
为什么被折叠?



