ThinkPHP模型

l      1,模型的种类

l      2,模型的字段操作

l      3,数据主键

l      4,模型的连贯操作

l      5,查询语言

一、模型的种类

1基础模型

(1)通过M()函数获得,还可以通过实例化Model()的形式获得基础模型,同样构造函数的参数为某个表名

$baseModel=M('Xiao');$model=new Model('Xiao');

2)那么直接实例化模型和调用M()函数的区别:

直接实例化模型,每次会得到一个新的模型

通过M()函数获得的模型,多次调用只会得到某个表的一个对象,建议使用,节省资源

2空模型

1)这个模型不与任何数据表相关,作用是执行一些不与数据表相关的操作,例如统计当前数据库有几张表?

2)我们可以使用模型的query()或者 execute()方法执行sql语句,其中:

          query()返回查询的结果

execute()返回受影响的行数

例:

//空模型

public function nums(){

$model=M();//不写表名

$sql='show tables';

$list=$model->query($sql);//query()返回查询的结果

var_dump($list);

}

3、自定义模型

1)模型的定义,命名方式:

去掉表前缀的数据表名称,采用驼峰法,首字母大写,后面加上Model.class.php

表名Model.class.php(上面用的都是系统自定义好的)

2)关于数据表名称的属性的定义:

tableName

trueTableName

例如在数据库有一个goods表,而我们定义的模型类是GoodModel,按照约定这个模型名称应该是Good,对应的表应该是good,这时我们就需要修改模型的属性来改变默认的规则

例:ModelAction.class.php

public function good(){

         $model=D('User');// D()方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,

         var_dump($model);

         }

UserModel.class.php

<?php

class UserModel extends Model{

         protected $tableName='xiao';//如果自定义模型没有与表名一致,这里设置表名

         }

?>

4、模型字段操作

1TP框架每次获得模型的时候,会去数据库中确定数据表的结构

2)如果开启的是部署模式,会将这个表的结构缓存起来,因为一旦项目上线,很少再去修改表的结构,这样提高访问速度

数据表的结构保存到

 

 

3)在实际开发中,为了最快速的获得当前模型表的结构,将表的结构定义到这个模型中,字段名是$fields

5、数据主键

ThinkPHP的默认约定每个数据表的主键名采用统一的id作为标识,并且是自动增长类型的。

系统会自动识别当前操作的数据表的字段信息和主键名称,所以即使你的主键不是id,也无需进行额外的设置,系统会自动识别

6、连贯操作

连贯操作是什么呢?

我们可以通过select()查询出所有的数据,但是有时候我们不需要所有的数据,我们可能通过一些条件拼接一个sql语句,然后去查询

例如,现在我需要查询出价格为3500 的商品名称

7模型的连贯操作

where(‘条件字符串’)定义查询或更新的条件

field(‘字段列表’)  需要查询的字段,如果为true显示数据表的所有字段

order()对操作结果排序

limit()定义查询结果的限制

group()分组查询

having()当前查询结果的条件

table()定义要操作的数据表名称,

union()联合查询,连接的是两个select语句

distinct()去除重复查询

join()连接查询:默认为左连接。

(1)where条件字符串)定义查询或更新的条件

(2)field字段列表  需要查询的字段,如果为true显示数据表的所有字段

field()的参数可以是一个数组,如果是一个关联数组的话,为字段取别名

(3)order()对操作结果排序

(4)limit()定义查询结果的限制

(5)group()分组查询

(6)having()当前查询结果的条件

(7)table()定义要操作的数据表名称,

还可以在table()方法中跨库操作

(7)union()联合查询,连接的是两个select语句

8distinct()去除重复查询

8、查询语言

ThinkPHP支持直接使用字符串作为查询条件,但是推荐使用关联数组或对象作为查询条件,这样会更加安全

(1)      使用字符串作为查询条件

(2)      使用数组作为查询条件

更改查询条件:

$cond[‘查询条件’] = array(‘关系’) 表示出来值与字段之间的关系

$cond['id']=array('eq','2');

$list=$good->where($cond)->select();

var_dump($list);//id=2的记录

模糊匹配:

$cond['name']=array('like','w%');//模糊匹配:

$list=$good->where($cond)->select();

var_dump($list);//namew的记录

(3)      使用对象作为查询条件

 

4)统计查询

合计函数在TP框架中的使用

count()  统计数量(统计字段名)

avg()   统计平均值

sum()   统计和

例:$sum=$good->sum('id');//id

var_dump($sum);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值