您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

ThinkPHP 之 curd 操作_PHP教程

2024/5/26 5:19:21发布26次查看
thinkphp提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(curd):创建、读取、更新和删除的实现,还内置了很多实用的数据操作方法,提供了activerecords模式的最佳体验。
新建记录
php 代码
1.  $user->find(2);
2.  $user->delete(); // 删除查找到的记录
3.  $user->delete('5,6'); // 删除主键为5、6的数据
4.  $user->deleteall(); // 删除查询出来的所有数据
php 代码
1.  // 实例化一个user模型对象
2.
3.  $user =  new  usermodel();
4.  // 然后给数据对象赋值
5.  $user->name = 'thinkphp';
6.  $user->email = 'thinkphp@gmail.com';
7.  // 然后就可以保存新建的user对象了
8.  $user->add();
9.  // 如果需要锁实例化模型对象的时候传入数据,可以使用
10.            $data['name'] = 'thinkphp';
11.            $data['email'] = 'thinkphp@gmail.com';
12.            $user =  new  usermodel($data);
13.            $user->add();
14.            // 或者直接在add方法传入要新建的数据
15.            $data['name'] = 'thinkphp';
16.            $data['email'] = 'thinkphp@gmail.com';
17.            $user =  new  usermodel();
18.            $user->add($data);
19.
20.
一般情况下,应用中的数据对象不太可能通过手动赋值的方式写入,而是有个数据对象的创建过程。thinkphp提供了一个create方法来创建数据对象,然后进行其它的新增或者编辑操作。
php 代码
1.  $user = d(user);
2.  $user->create(); // 创建user数据对象,默认通过表单提交的数据进行创建
3.  $user->add(); // 新增表单提交的数据
create方法支持从其它方式创建数据对象,例如,从其它的数据对象,或者数组等
php 代码
1.  $data['name'] = 'thinkphp';
2.  $data['email'] = 'thinkphp@gmail.com';
3.  $user->create($data);
4.  // 从user数据对象创建新的member数据对象
5.  $member = d(member);
6.  $member->create($user);
支持新增多条记录
php 代码
1.  $user =  new  usermodel();
2.  $data[0]['name'] = 'thinkphp';
3.  $data[0]['email'] = 'thinkphp@gmail.com';
4.  $data[1]['name'] = '流年';
5.  $data[1]['email'] = 'liu21st@gmail.com';
6.  $user->addall($data);
在mysql数据库下面,会自动使用一条sql语句实现多数据的插入。
查询记录
读取数据库的记录我觉得是数据库操作中的最有意思的一件事情了,写过文本数据库的人都知道,保存和删除数据不难(无非是规范和效率问题),难在可以通过各种方式来查找需要的数据。thinkphp通过各种努力,让数据库的查询操作变得轻而易举,也让thinkphp变得富有内涵。
thinkphp有一个非常明确的约定,就是单个数据查询和多个数据查询的方法是分开的,或者你会认为有时候自己也不知道要查询的数据是单个还是多个,但是有一点是明确的,你需要的是返回一个数据还是希望返回的是一个数据集。因为对两种类型的返回数据的操作方式是截然不同的,无论何种方式的返回,我们都可以直接在模型对象里面操作,当然也一样可以作为数据传递给你需要的变量。
先举个最简单的例子,假如我们要查询主键为8的某个用户记录,我们可以使用下面的一些方法:
php 代码
1.  $user->find(8);
这个作为查询语言来说是最为直观的,如果查询成功,查询的结果直接保存在当前的数据对象中,在进行下一次查询操作之前,我们都可以提取,例如获取查询的结果数据:
php 代码
1.  $name = $user->name;
2.  $email = $user->email;
遍历查询到的数据对象属性
php 代码
1.  foreach  ($user  as  $key=>$val){
2.    echo($key.':'.$val);
3.  }
// 或者进行相关的数据更改和保存操作
也可以用变量保存下来以便随时使用。
php 代码
1.  $user = $user->find(8);
对于上面的查询条件,我们还可以使用getbyid来完成相同的查询
php 代码
1.    $user->getbyid(8);
需要注意的是,对于find方法来说,即使查询结果有多条记录,也只会返回符合条件的第一条记录,如果要返回符合要求的所有记录,请使用findall方法。
php 代码
1.    // 查询主键为1、3、8的记录集
2.    $user->findall('1,3,8');
3.    // 遍历数据列表
4.    foreach  ($user  as  $vo){
5.    dump($vo->name);
6.    }
更多的查询操作请参考后面章节的内容。
更新记录
了解了查询记录后,更新操作就显得非常简单了。
// 还可以使用下面的方式更新
php 代码
1.  $user->find(1); // 查找主键为1的数据
2.  $user->name = 'topthink'; // 修改数据对象
3.  $user->save(); // 保存当前数据对象
4.  $user->score = '(score+1)'; // 对用户的积分加1
5.  $user->save();
如果不是使用数据对象的方式来保存,可以传入要保存的数据和条件
php 代码
1.  $data['id'] = 1;
2.  $data['name'] = 'topthink';
3.  $user->save($data);
除了save方法外,你还可以使用setfield方法来更新特定字段的值,例如:
php 代码
1.  $user->setfield('name','topthink','id=1');
同样可以支持对字段的操作
php 代码
1.  $user->setfield('score','(score+1)','id=1');
2.  // 或者改成下面的
3.  $user->setinc('score','id=1');
删除记录
如果你的主键是自动增长类型,不需要传入主键的值就可以新建数据,并且如果插入数据成功的话,add方法的返回值就是最新插入的主键值,可以直接获取。
echo $user->getlastsql();
http://www.bkjia.com/phpjc/477477.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/477477.htmltecharticlethinkphp提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(curd):创建、读取、更新和删除的实现,还内置了很...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product