• 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 HomeController;
    use ThinkController;
    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 HomeModel;
    use ThinkModel;
    /**
     * Created by PhpStorm.
     * User: Administrator
     * Date: 2017/8/24 0024
     * Time: 21:05
     */
    class UserModel extends Model{
          public function getinfo(){
              //添加自己的业务逻辑
              return 'helloworld';
          }

    }

    代码

    <?php
    namespace HomeController;
    use ThinkController;
    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 HomeModel;
    use ThinkModel;
    /**
     * 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 HomeController;
    use ThinkController;
    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 HomeModel;
    use ThinkModel;
    /**
     * 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 HomeModel;
    use ThinkModel;
    /**
     * 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 HomeController;
    use HomeModelCommonModel;
    use ThinkController;
    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     实例化模型的   区别

     

  • 相关阅读:
    1.1 控制div属性
    1.7 节点进行排序显示
    [iOS问题归总]iPhone上传项目遇到的问题
    [iOS]iPhone进行真机测试(基础版)
    [iOS]利用Appicon and Launchimage Maker生成并配置iOSApp的图标和启动页
    [cocoapods]cocoapods问题解决
    [cocoapods] 如何卸载工程里的cocoapods
    [iOS]如何把App打包成ipa文件,然后App上架流程[利用Application Loader]
    [iOS]开发者证书和描述文件的作用
    [iOS]解决模拟器无法输入中文问题
  • 原文地址:https://www.cnblogs.com/mike-mei/p/7428294.html
Copyright © 2020-2023  润新知