thinkphp对数据库的操作是通过模型来完成的.一般来说每一个模型对应着一个单独的逻辑业务逻辑封装,但许多时候我们只是对某些模型进行简单的增删改查操作,特意定义一个模型,不太方便,所以thinkphp提供了多种操作数据库的方式.
1. 实例化空模型类
如果你仅仅是使用原生SQL查询的话,不需要使用额外的模型类,实例化一个空模型类即可进行操作了
//实例化空模型
$Model = new Model();
//或者使用M快捷方法是等效的
$Model = M();
//进行原生的SQL查询
$Model->query('SELECT * FROM think_user WHERE status = 1');
2. 实例化基础模型(Model) 类
- 优点 简单高效,因为不需要定义任何的模型类
- 缺点 无法写入相关的业务逻辑,只能完成基本的CURD操作。
//实例化User模型
$User = new Model('User');
//或者使用M()快捷方法实例化,和上面的方法是等效的
$User = M('User');
//执行其他的数据操作
$User->select();
3.实例化自定义模型(×××Model)类
这种情况是使用的最多的,一个项目不可避免的需要定义自身的业务逻辑实现,就需要针对每个数据表定义一个模型类,例如UserModel 、InfoModel等等。
自定义模型实例化
//实例化自定义模型
$User = new UserModel();
//或者使用D快捷方法
Or $User = D('User');
//执行具体的数据操作
$User->select();
D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。