牛骨文教育服务平台(让学习变的简单)
博文笔记

TP框架CURD

创建时间:2017-07-25 投稿人: 浏览次数:460

TP框架CURD

Creat数据:
如果你的数据完全是内部操作写入而不是通过表单的话(也就是说可以充分信任数据的安全),那么可以 直接使用add方法,如:

$Form = D("Form");
$data["title"] = "ThinkPHP";
$data["content"] = "表单内容";
$Form->add($data);

也可以支持对象方式操作:

$Form = D("Form");
$Form->title = "ThinkPHP";
$Form->content = "表单内容";
$Form->add();

read数据

public function read($id=0){
$Form = M("Form");
// 读取数据
$data = $Form->find($id);
if($data) {
$this->assign("data",$data);// 模板变量赋值
}else{
$this->error("数据错误");
}
$this->display();
}

update数据

public function edit($id=0){
$Form = M("Form");
$this->assign("vo",$Form->find($id));
$this->display();
}
public function update(){
$Form = D("Form");
if($Form->create()) {
$result = $Form->save();
if($result) {
$this->success("操作成功!");
}else{
$this->error("写入错误!");
}
}else{
$this->error($Form->getError());
}
}

当然亦可以这样:

$Form = M("Form");
// 要修改的数据对象属性赋值
$data["id"] = 5;
$data["title"] = "ThinkPHP";
$data["content"] = "ThinkPHP3.2.3版本发布";
$Form->save($data); // 根据条件保存修改的数据

save方法会自动识别数据对象中的主键字段,并作为更新条件。当然,你也可以显式的传入更新条件:

$Form = M("Form");
// 要修改的数据对象属性赋值
$data["title"] = "ThinkPHP";
$data["content"] = "ThinkPHP3.2.3版本发布";
$Form->where("id=5")->save($data); // 根据条件保存修改的数据

也可以改成对象方式来操作:

$Form = M("Form");
// 要修改的数据对象属性赋值
$Form->title = "ThinkPHP";
$Form->content = "ThinkPHP3.2.3版本发布";
$Form->where("id=5")->save(); // 根据条件保存修改的数据

有的时候可以直接使用setFiled

$Form = M("Form");
// 更改title值
$Form->where("id=5")->setField("title","ThinkPHP");

对于统计字段,系统还提供了更加方便的setInc和setDec方法。 例如:

$User = M("User"); // 实例化User对象
$User->where("id=5")->setInc("score",3); // 用户的积分加3
$User->where("id=5")->setInc("score"); // 用户的积分加1
$User->where("id=5")->setDec("score",5); // 用户的积分减5
$User->where("id=5")->setDec("score"); // 用户的积分减1

delete 数据
删除数据很简单,只需要调用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表示没有删除任 何数据。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。