thinkphp 连接数据库 & 实例化模型操作 (下接thinkphp CURD 操作)/慕课

 

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);

}

 

 

 

结果

 

 

 

 

 

 

 

 总结,一般用123方法,4 方法不推荐使用

 

 M   D     实例化模型的   区别

 

 

 

 

posted @ 2017-08-25 15:33  南北12345678  阅读(328)  评论(0编辑  收藏  举报