thinkphp 在数据库更新(save)的时候,如果字段没有被修改,会更新失败 和数据的自动验证,插入的时候可以自动验证,但更新的时候就不能验证了
最近在研究thinphp遇到些问题
1,thinkphp 在数据库更新(save)的时候,如果字段没有被修改,会更新失败
原因如下:首先应该知道thinkphp中的save()方法是用来更新数据的,save方法正常执行时返回的是影响记录的行数,出错的时候返回false
当未修改时影响的记录行数为0,所以0和false代表的意思是不同的,尽管他们都是代表假,所以在判断是否修改成功的时候不能用
if(xxx->save())而要使用if(xxx->save!==false)从而判断值和类型是否和false匹配
2,数据的自动验证,出现的问题是插入的时候可以自动验证,但更新的时候就不能验证了
代码如下:注:(我验证的是tagname字段)
protected $_validate = array(
array("tagname","require","标签名不能为空!"),
array("tagname","","标签名称已经存在!",0,"unique",1),
);
问题就出在这个1(验证时间上了)查了手册才知道
验证时间(可选)
- self::MODEL_INSERT或者1新增数据时候验证
- self::MODEL_UPDATE或者2编辑数据时候验证
- self::MODEL_BOTH或者3全部情况下验证(默认)
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
