您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp3.2.1学习笔记-CURD操作[下]
发布时间:2017-09-19 11:17:15编辑:雪饮阅读()
获取-获取指定字段值:
获取单条:
$user=M("User");
$name=$user->getField("name");
获取多条:
$user=M("User");
$names=$user->getField("name",true);
获取多个字段(自动多条,自动去重):
$infos=$user->getField("name,id");
字段个数为2个时,左边字段将为键名,右边字段将为键值。
$infos=$user->getField("id,name,email");
字段个数大于2时,第一个字段为键名,而键值则是包含所有字段,也包含第一个字段。
$infos=$user->getField("id,name,email",":");
如果有分割符号则第一个字段为键名,键值为所有字段值以分割符号进行连接一起的字符串。
$infos=$user->getField("id,name,email",2);
限制获取数据的条数。
更新:
$user=M("User");
$data["id"]=1;
$data["name"]="dmj";
$data["email"]="xy";
$data["age"]=18;
$user->save($data);
这里它会自动判断到id是否是主键,如果是主键则以该值为where的条件。
更新操作所需数据同样也可以用create连贯操作。
更新-指定字段:
$user=M("User");
$map["id"]=1;
$user->where($map)->setField('name','dmjlovexy');
更新-自增
$user=M("User");
$map["id"]=1;
$user->where($map)->setInc('age',1);
更新-自减
$user=M("User");
$map["id"]=1;
$user->where($map)->setDec('age',1);
删除-按主键:
$user=M("User");
$user->delete(1);
多个主键:
$user->delete('4,5');
删除-按结果集:
$user->where($map)->order(array('id'=>'desc'))->limit(2)->delete();
删除-所有数据(谨慎用):
$user->where('1')->delete();
ActiveReocrd模式。
这种模式最大化的简化了curd的操作。
增加数据:
$user=M("User");
$user->name='星魂大人';
$user->email='成小亮是瓜瓜';
$user->add();
结合式增加数据:
以上面的对象的方式create获取到数据,若还需要额外数据可再次通过数据的形式再次添加,最后直接add。
查询数据-按主键:
$info=$user->find(10);
查询数据-按字段:
这里是按name字段查询
$info=$user->getByName("星魂大人");
按字段查询后还可以进一步的直接获取该条数据的其它字段值:
$info=$user->getByName("星魂大人");
echo $user->email;
查询数据-查询并以查询结果为条件来修改:
$user=M("User");
$user->find(10);
$user->name='雪饮大侠';
$user->save();
查询数据-查询并删除:
$user=M("User");
$user->find(10);
$user->delete();
字段映射:
有时候前端表单的字段要区别于数据库中的字段,这样更安全些。
但又要create可以快速获取直接添加数据。那么就需要字段映射了。
表单中字段如下:
<p>用户:<input type="text" name="yonghu"></p>
<p>邮箱:<input type="text" name="youxiang"></p>
然后需要自定义模型中添加映射关系:
protected $_map=array(
'yonghu'=>'name',
'youxiang'=>'email',
);
方法中调用通过字段映射获取的结果:
$user=D("User");
$data=$user->create();
关键字词:thinkphp3.2.1,curd