ThinkPHP3.2完全开发手册

ThinkPHP系列开发手册在线版

数据删除

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注释 字符串
fetchSql 不执行SQL而只是返回SQL 布尔值