码迷,mamicode.com
首页 > Web开发 > 详细

第 39 章 ThinkPHP--模型初步

时间:2015-10-02 18:35:47      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

一.创建数据库 在使用模型操作之前,我们首先创建一个数据库:thinkphp。创建一个用户表:user。 添加一些数据即可。

ThinkPHP 内置了抽象数据库访问层,把不同的数据库操作封装起来。我们只需要使用 公共的 Db 类进行操作,无须针对不同的数据库写不同的代码和底层实现。Db 类会自动调用 相应的数据库驱动来处理。

目前支持的数据库包括 Mysql(包含 mysql 和 mysqli)、SqlServer、PgSQL、Sqlite、 Oracle、Ibase、Mongo、PDO 等。

//全局配置定义
DB_TYPE=>mysql, //数据库类型
DB_HOST=>localhost, //服务器地址
DB_NAME=>thinkphp, //数据库名
DB_USER=>root, //用户名
DB_PWD=>123456, //密码
DB_PORT=>3306, //端口
DB_PREFIX=>think_, //数据库表前缀
PS:数据库全局配置信息除了 PDO,均可以采用上面的设置。
//PDO专用定义
DB_TYPE=>pdo, //数据库类型
DB_USER=>root, //用户名
DB_PWD=>123456, //密码
DB_PREFIX=>think_, //数据库表前缀
DB_DSN=>mysql:host=localhost;dbname=thinkphp;charset=UTF8,

 

二.实例化模型 连接上数据库后,我们需要从数据库里操作数据,那么就需要实例化模型类。在 ThinkPHP 中,提供了 Model 基类处理,也可以使用 M()方法。

//实例化Model类,传一个数据表名
$user = new Model(User);
//显示变量结构
var_dump($user);
Model 基类可以传递三个参数:
Model([模型名],[数据表前缀],[数据库连接信息]);
//实例化Model类,改变表前缀
$user = new Model(User,tp_);
//实例化Model类,定义数据库链接信息
$user =
new Model(User,think_,mysql://root:123456@localhost/thinkphp); //应用于某些小地方的数据库调用
//打印出所有数据
var_dump($user->select());
使用 Model 基类还需要导入命名空间,而使用 M()方法,则不需要。
use Think\Model; //导入空间命名
//实例化Model类 $user = M(User);//不需要再导入命名空间

除了使用 Model 基类和 M()方法,还有一种对应数据表的模型定义,比如:UserModel。 这种模型类并非必须定义的,只有当存在独立的业务逻辑或者属性的时候才需要。

//User模型类
namespace Home\Model;
use Think\Model;
class UserModel extends Model {}
创建了 UserModel 模型类后,控制器那头就可以直接声明。
//User模型类
$user = new UserModel();
var_dump($user->select());

 

虽然使用模型类和数据表对应较为方便,但当有时我们需要更换表名、前缀、附加数据 库名等,就需要一些字段定义的操作。为了更加方便的了解数据表的变化,我们使用一下页 面 Trace 工具,可以时时的查询 SQL 的变化。

//页面Trace,调试辅助工具 ‘SHOW_PAGE_TRACE‘ =>true,

 

第 39 章 ThinkPHP--模型初步

标签:

原文地址:http://www.cnblogs.com/yu520zhong/p/4852472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!