• 第 39 章 ThinkPHP--CURD 操作


    学习ThinkPHP 模型中的 CURD 操作,也就是增删改查。通过 CURD, 我们可以方便快速的对数据库进行操作。

    1.数据创建 2.数据写入 3.数据读取 4.数据更新 5.数据删除

    一.数据创建 在数据库添加等操作之前,我们首先需要对数据进行创建。何为数据创建,就是接受提 交过来的数据,比如表单提交的 POST(默认)数据。接受到数据后,还可以对数据进行有 效的验证、完成、生成等工作。

    //根据表单提交的POST数据,创建数据对象 $user = M('User'); var_dump($user->create()); PS:这里 create()方法就是数据创建,数据的结果就是提交的 POST 数据的键值对。

    特别注意的是:提交过来的字段和数据表字段是对应的,否则无法解析。

    //通过数组手工获取数据,覆盖提交的 $user = M('User'); $data['user'] = $_POST['user']; $data['email'] = $_POST['email']; $data['date'] = date('Y-m-d H:i:s');

    //和数据表对应,否则无效 var_dump($user->create($data));

    //通过对象手工获取数据,覆盖提交的 $user = M('User'); $data = new stdClass(); $data->user = $_POST['user']; $data->email = $_POST['email']; $data->date = date('Y-m-d H:i:s'); var_dump($user->create($data));

    //默认是$_POST,传递$_GET修改 $user = M('User'); var_dump($user->create($_GET)); create()方法可以传递第二个参数,将要操作的模式,有两种:Model::MODEL_INSERT 和 Model::MODEL_UPDATE,即新增和修改。当没有指定的时候,系统会根据数据源是否包 含主键来自动判断,如果包含主键,则就是修改操作。

    //设置将要新增操作 $user = M('User'); var_dump($user->create($_POST, Model::MODEL_INSERT));

    create()方法的内部工作分为 9 步:

    1.获取数据源(默认是 POST);
    
    2.验证数据合法性(非数据或对象会过滤),失败则返回 false3.检查字段映射;
    
    4.判断数据状态(新增还是修改);
    
    5.数据自动验证,失败则返回 false6.表单令牌验证,失败则返回 false7.表单数据赋值(过滤非法字段和字符串处理);
    
    8.数据自动完成;
    
    9.生成数据对象(保存在内存)。

    create()方法可以配合连贯操作配合数据创建,支持的连贯操作有:

    1.field,用于定义合法的字段;  var_dump($user->field('user')->create());
    
    2.validate,用于数据自动验证;
    
    3.auto,用于数据自动完成;
    
    4.token,用于令牌验证。
    
    //限制可操作的字段 $user = M('User'); var_dump($user->field('user')->create());
    
    //在模型类里限制字段 class UserModel extends Model { protected $insertFields = 'user'; protected $updateFields = 'user'; }

    二.数据写入 数据写入使用的是 add()方法。

    //新增一条数据 $user = M('User'); $data['user'] = '李炎恢'; $data['email'] = 'yc60.com@gmail.com'; $data['date'] = date('Y-m-d H:i:s'); $user->add($data);

    //结合create()方法 $user = M('User'); $data = $user->create(); $data['date'] = date('Y-m-d H:i:s'); $user->add($data); add()方法支持的连贯操作有:

    1.table,定义数据表名称;

    2.data,指定要写入的数据对象;

    3.field,定义要写入的字段;

    4.relation,关联查询;

    5.validate,数据自动验证;

    6.auto,数据自动完成;

    7.filter,数据过滤;

    8.scope*,命名范围;

    9.bind,数据绑定操作;

    10.token,令牌验证;

    11.comment,SQL 注释; //使用data连贯方法 $user = M('User'); $data = $user->create(); $data['date'] = date('Y-m-d H:i:s'); $user->data($data)->add(); //data连贯方法 支持字符串、数组、对象 $user = M('User'); $data = 'user=星矢&mail=xinshi@qq.com&date='.date('Y-m-d H:i:s'); $user->data($data)->add(); 

    我的个人博客,欢迎来访问!网址:http://www.miuu.club
  • 相关阅读:
    Android常用命令
    kafka原理和集群配置
    zookeeper原理和集群配置
    python中is和==的区别以及全字段取出key和value
    Android Monkey压力测试介绍
    有一串随机整数列,a1,a2,...an,求数字[0-9]分别出现的次数,比如:[12, 210, 33]输出{'0': 1, '1': 2, '2': 2, '3': 2},时间和空间复杂度
    接口自动化get请求方式的处理
    读excel和openpyxl模块
    linux上安装Docker
    [数据结构]堆的建立和排序
  • 原文地址:https://www.cnblogs.com/yu520zhong/p/4854865.html
Copyright © 2020-2023  润新知