7.1 连接数据库 (06:15) 1

7.2实例化模型 1

1.实例化基础模型 2

2. 实例化用户自定义模型 2

问题 2

3. 实例化公共模型 4

4. 实例化空模型 7

 

 7.1 连接数据库 (06:15)

Tp内置啦一个数据库函数   支持大多主流数据库

数据库配置

'DB_TYPE'               =>  'mysql',     // 数据库类型
'DB_HOST'               =>  'www.234.com', // 服务器地址
'DB_NAME'               =>  'muck',          // 数据库名
'DB_USER'               =>  'root',      // 用户名
'DB_PWD'                =>  'root',          // 密码
'DB_PORT'               =>  '3306',        // 端口
'DB_PREFIX'             =>  'mk_',    // 数据库表前缀

 

7.2实例化模型

1.实例化基础模型

public function user(){

//1.实例化基础模型
//$user=new Model('user');//表名,表前缀,数据库连接信息
 $user=M('user');
 $data=$user->select();//查询表
 dump($data);

D方法是M方法的高级方法    调用模型中的

M方法是实例化模型,不用定义用户的模型和模型类,在使用D方法时候如果他没有找到他的自定义模型的话,自动转成M方法转化成   基础模型的实例

2.实例化用户自定义模型

问题   controller调用model层调用不出来

 

实例化时应该在类名前加上命名空间就行了

完整DEMO

Controller层

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function user(){
        //1.实例化基础模型
        //$user=new Model('user');//表名,表前缀,数据库连接信息
//         $user=M('user');
//         $data=$user->select();//查询表
//         dump($data);
        //2.实例化用户自定义模型
        $user=D('User');
        echo   $user->getinfo();
     }
}

Model层

<?php
namespace Home\Model;
use Think\Model;
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/8/24 0024
 * Time: 21:05
 */
class UserModel extends Model{
      public function getinfo(){
          //添加自己的业务逻辑
          return 'helloworld';
      }

}

代码

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function user(){
        //1.实例化基础模型
        //$user=new Model('user');//表名,表前缀,数据库连接信息
//         $user=M('user');
//         $data=$user->select();//查询表
//         dump($data);
        //2.实例化用户自定义模型
        $user=D('User');
//        echo   $user->getinfo();
        $data=$user->select();
        dump($data);
     }
}

http://www.234.com/test/index/user

3.实例化公共模型

数据库有十个二十个表,都是公共的表,公共模型就起到作用了

class CommonModel extends Model{
    public function strmake($str){
        return md5(shal(md5($str)));
    }
}

完整代码

model

<?php
namespace Home\Model;
use Think\Model;
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/8/25 0025
 * Time: 14:03
 */
class CommonModel extends Model{
    public function strmake($str){
        return (md5($str));
    }
}

Controller

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function user(){
        //1.实例化基础模型
        //$user=new Model('user');//表名,表前缀,数据库连接信息
//         $user=M('user');
//         $data=$user->select();//查询表
//         dump($data);
        //2.实例化用户自定义模型
//        $user=D('User');
////        echo   $user->getinfo();
//        $data=$user->select();
//        dump($data);
        //3.实例化公共模型
        $user=D('Common');
        echo $user->strmake('aaaaa');
     }

}

OOP思想,在继承里面

Model

<?php
namespace Home\Model;
use Think\Model;
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/8/25 0025
 * Time: 14:03
 */
class CommonModel extends Model{
    public function strmake($str){
        return (md5($str));
    }
}

<?php
namespace Home\Model;
use Think\Model;
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/8/24 0024
 * Time: 21:05
 */
class UserModel extends CommonModel{
      public function getinfo(){
          //添加自己的业务逻辑
          return 'helloworld';
      }

}

Controller

<?php
namespace Home\Controller;
use Home\Model\CommonModel;
use Think\Controller;
class IndexController extends Controller {
    public function user(){
        //1.实例化基础模型
        //$user=new Model('user');//表名,表前缀,数据库连接信息
//         $user=M('user');
//         $data=$user->select();//查询表
//         dump($data);
        //2.实例化用户自定义模型
//        $user=D('User');
////        echo   $user->getinfo();
//        $data=$user->select();
//        dump($data);
        //3.实例化公共模型
//        $user=new CommonModel();
//        echo $user->strmake('aaaaa');
        $user=D('User');
        echo $user->strmake('bbbbbb');
     }

}

结果

4.实例化空模型

//实例化空模型
         $model=M();
//        $data=$model->query('select * from mk_user');//读取日常select
//        dump($data);
        $data=$model->execute('update mk_user set user_name="kitty" where id=6');//写入 update  insert
        dump($data);

}

结果

总结,一般用1,2,3方法,4 方法不推荐使用

M   D     实例化模型的   区别

thinkphp 连接数据库 & 实例化模型操作 (下接thinkphp CURD 操作)/慕课的更多相关文章

  1. Thinkphp入门 五 —模型 (49)

    原文:Thinkphp入门 五 -模型 (49) [数据库操作model模型] model  模型  数据库操作 tp框架主要设计模式:MVC C:controller   控制器   shop/Li ...

  2. 【三十二】thinkphp之连接数据库、实例化模型

    1.连接数据库 Thinlphp内置了抽象数据库访问层,把不同的数据操作封装起来.我们只需要调用公共的DB类进行操作即可.DB类会自动调用相应的数据库驱动来处理. 在应用目录/common/conf/ ...

  3. ThinkPHP学习笔记 实例化模型的四种方法

    创建Action类   [php]   <?php   class NewObjectAction extends Action{       public function index(){ ...

  4. thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件)

    thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件) 一.总结 1.通过模型事件(钩子函数),可以在插入更新删除等前后执行一些特定的功能 2.模型事件是写在模型里面的,控制器中 ...

  5. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  6. ThinkPHP中的模型二

    ThinkPHP中的模型 1.为什么要创建数据对象 案例:使用ThinkPHP完成部门管理 ① 设计数据库 ② 创建Dept控制器 路径:./Application/Admin/Controller创 ...

  7. ThinkPHP中的模型

    ThinkPHP中的模型 1.什么是模型(Model) 模型表示企业数据和业务规则,实际项目开发中,主要实现与数据库进行操作. 2.模型的定义规则 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法 ...

  8. thinkphp框架之模型(数据库查询)

    1. 模型定义 文件名称必须是 表名+Model.class.php 例如:UserModel.class.php namespace Home\Model; //该模型类的命名空间 use Thin ...

  9. ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    原文:ThinkPHP中实例化对象M()和D()的区别,select和find的区别 1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在 ...

随机推荐

  1. 机器学习:scikit-learn 文档、深入学习机器学习的思路

    一.scikit-learn 的文档查阅 网页访问 scikit-learn 的文档: scikit-learn.org —— Document —— User Guide: scikit-learn ...

  2. 使用script转储终端命令输出,或者录制并播放session的内容

    摘自:http://leohot.blog.163.com/blog/static/1348656022012729113658473/ 注意: 1. 启动script时没有指定文件名,它会自动记录到 ...

  3. Git学习笔记(四)标签和搭建Git服务

    一.标签是什么 发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一 ...

  4. PowerDesigner生成sql脚本时去掉双引号并把字段名设为大写

    Database菜单—Edit Current RDBMS 找到Script---sql—Format--- CaseSensitivityUsingQuote,把它设置为NO 这样再用sql pre ...

  5. debian7 安装VMware Tools

    前提:需要安装gcc.kernel 1. apt-get install gcc 2. apt-get install kernel 问题描述: 安装时如果提示更换介质 :请把标有 " de ...

  6. 新增线下、APP、公众号多处入口,小程序会再火起来么?

    现在,大多数互联网创业者最缺的是流量,第二缺的是钱.之前开发者们追捧小程序的重要原因就是在于认为这可能是下一个微信公众号体量的流量入口,因为大家都想从微信的8亿多用户中收获自己的一部分用户. 近期部分 ...

  7. DAY11-MYSQL视图、触发器、事务、存储过程、函数

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  8. Javascript 面向对象(一):封装

    Javascript 面向对象编程(一):封装 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言, ...

  9. css水平居中,竖直居中技巧(一)

    css水平居中,竖直居中技巧(一)===### 1.效果 ### 2.代码#### 2.1.index.html <!DOCTYPE html> <html lang="z ...

  10. dubbo-admin打包和zookper安装

    1 首选安装Zookper,下载zookeeper-3.5.3-beta版本,在这里我主要演示这个:下载地址:http://mirrors.hust.edu.cn/apache/zookeeper/ ...