• 第 39 章 ThinkPHP--CURD 操作(下)


    三.数据读取

    在之前的课程中,我们已经大量使用了数据读取的功能,比如 select()方法。

    结合各 种连贯方法可以实现数据读取的不同要求,支持连贯的方法有:

    1.where,查询或更新条件;

    2.table,要操作的数据表名称;

    3.alias,数据表别名;

    4.field,查询字段;

    5.order,结果排序;

    6.group,查询分组;

    7.having,分组再查询;

    8.join,多表链接查询;

    9.union,合并 SELECT;

    10.distinct,取唯一值;

    11.lock,锁;

    12.cache,缓存;

    13.relation,关联查询;

    14.result,数据转换;

    15.scope,命名范围;

    16.bind,数据绑定操作;

    17.comment,SQL 注释。

    //显示默认第一条数据 $user = M('User'); var_dump($user->find());

    //可以传递数字参数,AR 模式

    //显示默认所有数据 $user = M('User'); var_dump($user->select());

    //可以传递数组形式的 SQL //获取第一条user字段的值 $user = M('User'); var_dump($user->getField('user'));

    //获取所有user字段的值 $user = M('User'); var_dump($user->getField('user',true));  

    //传递多个字段,获取所有 $user = M('User'); var_dump($user->getField('user,email'));  //重复的没有了

    //id冒号分隔 $user = M('User'); var_dump($user->getField('id,user,email',':'));

    //限制2条数据 $user = M('User'); var_dump($user->getField('id,user,email',2));

    四.数据更新

    数据更新使用的方法是 save()方法,主要是对数据的修改操作。

    //修改第一条数据 $user = M('User'); $data['user'] = '蜡笔大新'; $data['email'] = 'daxin@qq.com'; $map['id'] = 1; $user->where($map)->save($data);

    //成功后返回 1,否则 0

    //默认主键为条件 $user = M('User'); $data['id'] = 1; $data['user'] = '蜡笔小新'; $data['email'] = 'xiaoxin@163.com'; $user->save($data);

    数据更新的 save()方法支持的连贯方法有:

    1.where,查询或更新条件;

    2.table,要操作的数据表名称;

    3.alias,数据表别名;

    4.field,查询字段;

    5.order,结果排序;

    6.lock,锁;

    7.relation,关联查询;

    8.scope,命名范围;

    9.bind,数据绑定操作;

    10.comment,SQL 注释。

    //结合create() $user = M('User'); $user->create();

    //POST必须包含主键 $user->save();

    //修改某一个值 $user = M('User'); $map['id'] = 1; $user->where($map)->setField('user', '蜡笔大新');

    //统计累计,累加累减 $user = M('User'); $map['id'] = 1; $user->where($map)->setInc('count',1);

    //累加,setDec 累减

    五.数据删除

    数据删除使用的方法是 delete()方法。

    //直接删除主键(id=17) $user = M('User'); $user->delete(17);

    //根据ID来删除 $user = M('User'); $map['id'] = 16; $user->where($map)->delete();

    //批量删除多个 $user = M('User'); $user->delete('1,3,5');

    //删除count为0且按时间倒序的前五个 $user = M('User'); $map['count'] = 0; $user->where($map)->order(array('date'=>'DESC'))->limit(5)-> delete();

    //删除所有数据,谨慎 $user = M('User'); echo $user->where('1')->delete();

    delete()方法支持的连贯操作有: 1.where,查询或更新条件; 2.table,要操作的数据表名称; 3.alias,数据表别名; 4.order,结果排序; 5.lock,锁; 6.relation,关联查询; 7.scope,命名范围; 8.bind,数据绑定操作; 9.comment,SQL 注释。

    六.ActiveReocrd 模式

    这种模式最大的特别就是简化了 CURD 的操作,并且采用对象化的操作方式,便于使用 和理解。

    //添加一条数据 $user = M('User'); $user->user = '火影忍者'; $user->email = 'huoyin@qq.com'; $user->date = date('Y-m-d H:i:s'); $user->add();

    //结合create $user = M('User'); $user->create(); $user->date = date('Y-m-d H:i:s'); $user->add();

    //找到主键为4的值 $user = M('User'); var_dump($user->find(4));

    //查找user=蜡笔小新的记录 $user = M('User'); var_dump($user->getByUser('蜡笔小新'));

    //输出user echo $user->user;

    //通过主键查询多个 $user = M('User'); var_dump($user->select('1,2,3'));

    //修改一条数据 $user = M('User'); $user->find(1); $user->user = '蜡笔老新'; $user->save();

    //删除当前找到的数据 $user = M('User'); $user->find(11); $user->delete();

    //删除主键为10的数据 $user = M('User'); $user->delete(10);

    //删除主键为10,11的数据 $user = M('User'); $user->delete('10,11');

    七.字段映射

    字段映射可以将表单里的 name 名称对应到数据表里的字段,这样防止系统自动屏蔽掉 不对应的 POST 值。

    //字段映射 protected $_map = array( 'xingming'=>'user', 'youxiang'=>'email', );

    //字段映射获取 $user = D('User'); var_dump($user->create());

    我的个人博客,欢迎来访问!网址:http://www.miuu.club
  • 相关阅读:
    20155213 2016-2017-2 《Java程序设计》第五周学习总结
    20155213 2016-2017-2《Java程序设计》第四周学习总结
    20155213 2016-2017-2《Java程序设计》第三周学习总结
    20155213 2016-2017-2 《Java程序设计》第二周学习总结
    20145109《Java程序设计》第一周学习总结
    《暗时间》读书笔记(三)
    调查问卷
    《Python学习手册》(四)
    《Python学习手册》(三)
    20165322 第五周学习总结
  • 原文地址:https://www.cnblogs.com/yu520zhong/p/4855080.html
Copyright © 2020-2023  润新知