D方法:
D实例化Model模型UserModel类:
$User = D('User'); //相当于 $User = new \Home\Model\UserModel();
$User->select(); //调用模型下的函数
当 \Home\Model\UserModel 类不存在的时候,D函数会尝试实例化公共模块
D方法会先查找model文件下的UserModel模型,如果不存在,则会寻找公共模型common下的Model,如果不存在则会实例化系统的\Think\Model基类。
D方法跨模块调用,例如前台调用后台以后的方法模型:
D('Admin/User'); //实例化Admin模块的User模型
D('Extend://Editor/Info'); //实例化Extend扩展命名空间下的Info模型
M方法:
M基本实例模型thinkphp下的Model类:
$user = M('User');
echo "<pre>";
var_dump($user->select());
M实例化Model下的UseModelr类
$user = new Model('User');
M方法数据从定向
(1.数据表user,2.表前缀,3.数据库连接 mysql//账号密码@连接地址/连接的数据库)
$user = new Model('User','think_','mysql://root:root@localhost/thinkphp');
M执行原声sql
var_dump($user->query('select * from think_user where id=1 AND user="宝宝"'));
区别:D方法和M方法都可以操作数据库,如果只是用CURD,增删改查,建议就使用M方法更高效。但是如何需要操作的逻辑比较强和需要返回,使用D方法会等方便
D实例化Model模型UserModel类:
$User = D('User'); //相当于 $User = new \Home\Model\UserModel();
$User->select(); //调用模型下的函数
当 \Home\Model\UserModel 类不存在的时候,D函数会尝试实例化公共模块
D方法会先查找model文件下的UserModel模型,如果不存在,则会寻找公共模型common下的Model,如果不存在则会实例化系统的\Think\Model基类。
D方法跨模块调用,例如前台调用后台以后的方法模型:
D('Admin/User'); //实例化Admin模块的User模型
D('Extend://Editor/Info'); //实例化Extend扩展命名空间下的Info模型
M方法:
M基本实例模型thinkphp下的Model类:
$user = M('User');
echo "<pre>";
var_dump($user->select());
M实例化Model下的UseModelr类
$user = new Model('User');
M方法数据从定向
(1.数据表user,2.表前缀,3.数据库连接 mysql//账号密码@连接地址/连接的数据库)
$user = new Model('User','think_','mysql://root:root@localhost/thinkphp');
M执行原声sql
var_dump($user->query('select * from think_user where id=1 AND user="宝宝"'));
区别:D方法和M方法都可以操作数据库,如果只是用CURD,增删改查,建议就使用M方法更高效。但是如何需要操作的逻辑比较强和需要返回,使用D方法会等方便