(34) PHP 随笔---ThinkPHP 数据库以及数据模型

◇mysql数据库操作(增、删、改、查)

  ◇连接数据库配置:我们应该修改自己的config.php文件中的一些常量,方法如下:

    ◇在config.php里做数据库连接配置,把convertion.php中/*数据库配置*/下的数据库常量复制到config.php下,然后再进行配置。

  ◇制作model模型

    ◇model本身就是一个类文件

    ◇数据库中的每个数据表都对应一个model模型文件

    ◇最简单的数据模型类

               

  ◇实例化model的三种方式

      ◇1、$goods = new \命名空间\GoodsModel();

    ◇2、$good = D("模型标志");

      ◇例如a、$goods = D("Goods")

    ◇3、$obj = M();

      ◇1、可以实例化父类Model

      ◇2、可以直接调用父类Model里面的属性,获得数据库相关操作

      ◇3、自定义model就是一个空壳,没有必要实例化自定义的model

    ◇注:D()和M()方法的区别

      ◇D()是TP3.1.3里面对new 方法的简化

      ◇M()在使用就是实例化Model父类

数据查询

  ◇select()是数据模型的一个指定方法,可以获得数据表的数据信息。

  ◇1、配置Smarty

    ◇配置变量信息   convertion.php

    ◇BeHavior   行为配置变量信息(页面底部日志显示配置、smarty配置)

    ◇系统程序里面有一些零散的配置信息

  ◇2、具体使用(从ThinkPHP引擎变为Smarty引擎)

    ◇1、css样式如果有{},需要使用{literal}标签禁止smarty解析

    ◇2、关键字$Think变为$smarty

    ◇3、ThinkPHP默认引擎对关键常量进行替换,例如:__CONTROLLER__      __MODULE__       但是smarty引擎不给替换,需要设置为{$smarty.const.__CONTROLLER__}

 ◇各种查询条件设置

  ◇$obj = D(标志);        创建对象

  ◇$obj -> select();       查询数据

  ◇select 字段,字段  from 表明  where 条件 group 字段   having 条件  order   排序    limit   限制条数;

 

  ◇$obj -> field(字段,字段);         查询指定字段

  ◇$obj -> table(数据表);              通过具体数据表查询

  ◇$obj -> where(参数);                参数就是正常sql语句where后面的条件信息,(“good_price>100 and goods_name like '苹%'”)

  ◇$bj -> group(字段)                   根据自端进行分组查询

  ◇$obj -> having(参数条件)          having条件设置

  ◇$obj -> order(‘price desc/asc’)   排序查询

  ◇$obj -> limit([偏移量],条数)       从指定的偏移量条数开始,查询一定的条数,一般用来“分页”作用

◇查询数据信息

  select()方法:

  ◇a、返回一个二维数组信息

  ◇b、返回全部数据信息表

  ◇c、给该方法传递参数:

    ◇1、select(30)                   查询主键值等于30的记录信息

    ◇2、select(“10,12,14”)       查询主键值在10、12、14范围内的活动记录

  ◇注:如果我们查询的结果只有一个信息,要使用find()函数,返回的是一个一维数组,如果使用select()会返回一个二维数组为了使用方便。

◇having()方法设置查询条件,where()设置查询条件

  ◇having   和    where   区别

    ◇1、使用有先后顺序

    ◇2、where price>100       having price >100

    ◇3、where 设置条件,字段必须是数据表中存在的字段

    ◇4、having设置条件,字段必须是select语句查询出来的字段可以使用

      ◇两种都可以使用

        ◇例如:select price,name,number   from goods  where  price > 100              可以

        ◇例如:select price,name,number   from goods  having  price > 100             可以

      ◇只可使用where,不可以使用having

        ◇例如:select name,number from goods where price > 100             可以

        ◇例如:select name,number from goods having price > 100             不可以,因为查询的字段没有price

      ◇只可使用having,不可以使用where

         ◇例如:select goods_category_id,avg(goods_price) as ag from sw_goods group by goods_category_id having ag>1000       可以

        ◇例如:select goods_category_id,avg(goods_price) as ag from sw_goods where ag > 1000 group by goods_category_id      不可以,不能用as的名字

◇ThinkPHP中的相关聚合函数  count()    sum()     avg()      max()       min()

   ◇以上聚合函数是最后被调用的方法,用法如下:

$goods -> count();
$goods -> max('price');
$goods -> where("price > 1000") -> count();

 

posted @ 2016-03-09 20:47  考拉爱喵喵  阅读(186)  评论(0编辑  收藏  举报