数据删除

ThinkPHP删除数据使用delete方法,例如:

$Form = M('Form');
$Form->delete(5);

表示删除主键为5的数据,delete方法可以删除单个数据,也可以删除多个数据,这取决于删除条件,例如:

$User = M("User"); // 实例化User对象
$User->where('id=5')->delete(); // 删除id为5的用户数据
$User->delete('1,2,5'); // 删除主键为1,2和5的用户数据
$User->where('status=0')->delete(); // 删除所有状态为0的用户数据

delete方法的返回值是删除的记录数,如果返回值是false则表示SQL出错,返回值如果为0表示没有删除任何数据。

也可以用order和limit方法来限制要删除的个数,例如:

// 删除所有状态为0的5 个用户数据 按照创建时间排序
$User->where('status=0')->order('create_time')->limit('5')->delete(); 

为了避免错删数据,如果没有传入任何条件进行删除操作的话,不会执行删除操作,例如:

$User = M("User"); // 实例化User对象
$User->delete(); 

不会删除任何数据,如果你确实要删除所有的记录,除非使用下面的方式:

$User = M("User"); // 实例化User对象
$User->where('1')->delete(); 

数据删除方法支持的连贯操作方法有:

连贯操作 作用 支持的参数类型
where 用于查询或者更新条件的定义 字符串、数组和对象
table 用于定义要操作的数据表名称 字符串和数组
alias 用于给当前数据表定义别名 字符串
order 用于对数据排序 字符串和数组
lock 用于数据库的锁机制 布尔值
relation 用于关联删除(需要关联模型支持) 字符串
scope 用于命名范围 字符串、数组
bind 用于数据绑定操作 数组
comment 用于SQL注释 字符串