zoukankan      html  css  js  c++  java
  • TP Model 修改和查询数据

    TP Model 修改一条数据

    ===Model 修改一条数据===

    方法:save()

    传参:

    1、$data=array() ;数组与表的各列要对应

    2、$options=array();  如:where,order,limit,group

    $options 是一个数组,存放sql查询条件的数组,如$options['where'],$options['order'],$options['limit']

    ===Model 查询数据===

    类似于ORM与AR的关系

    $options数组可以传递查询的参数

    $model->where()->order()->limit()->select(); 方法也可以传递查询的参数

    $model->select($options);   其中,$options可以是:

    1、数字,则按主键=数字来查询

    2、字符串,也是按主键来查询,会根据‘,’进行分割多个主键的值,用in来查询

    如何用连贯操作?

    $model->where('user_id=5')====>$model->__call('where','user_id=5')====>$model->options['where']='user_id=5';

    如上:连贯操作就是调用魔术方法,分别把查询参数如where,order,limit,储存到$this->options属性中 。

    ====当删,改,查的时候,如何分析参数====

    _parseOptions函数来分析sql查询的条件

    array_merge($this->options,$options); 即把$this->options属性的数组与参数$options数组合并,如果$options里有['order'],$this->options里也有order,则以$options为准,因为由于array_merge函数的特性,合并数组时如有键名相同,后盖前,因此,连贯操作时,到最后又手动插入了$options选项,则$options选项与连贯操作形成的查询选项合并,如果选项冲突,$options优先级比连贯操作优先级高

    ====删除数据====

    $model->delete()方法

    ====如何只取一条数据====

    $model->find()方法:因为find方法对$options添加了'limit'=1选项,其余和select()方法一样

  • 相关阅读:
    SpringMVC+Shiro权限管理(转载)
    面试常见问题(转载)
    JavaScript 五种(非构造方式)继承
    JavaScript 五种(构造方式)继承
    Quartz.Net 基于XML配置启动
    jexus防止产生 *.core文件
    Last-Modified、ETag、Expires和Cache-Control
    正则表达式记录
    C# 操作mongodb子文档
    ASP.NET Core "完整发布,自带运行时" 到jexus
  • 原文地址:https://www.cnblogs.com/echonn/p/2722704.html
Copyright © 2011-2022 走看看