链接数据库
mysql,mssql,pgsql,sqllite,oracle,ibase,pdo
数据库抽象层到底选择哪一个,不论选择哪一个数据库链接,都是使用thinkphp为你封装好的方法
db_type=>'mysql'
'db_host'=>'localhost',
'DB_name'=>'videodemo',
'Db_user'=>'root',
'DB_pwd'=>''
db_port=>3306
db_prefix=>'think_'

我在另外一个页面当中定义一个公共的配置项,然后将各个应用下的自定义配置文件组合return
'URL_MODEL'=>0 //普通模式 get方式
'URL_MODEL'=>2 //rewrite
$arr2=include'./config.inc.php'
return array_merge($arr1,$arr2);
推荐使用这样一种方式(也就是在配置文件中写数据库链接参数)
另外,thinkphp还为我们提供了一些数据库链接方式
action中
$dsn='mysql://google:google@8.8.8.8:3306/google'
$db=new Db($dsn);
第二种
$dsn=array(
 'dsn'=>'mysql',
'username'=>'google',
'password'=>'google',
'hostname'=>'
''database=>'google'
);
model
class UserModel extends Model{
 protected $commection=array(
 'dbms'=>'mysql',
'username'=>'aa'
'password'=>'bb'
 'hostname'=>'12.2.12.1'
);
}
主从数据库 比较适合高并发,高负载
可以通过主从数据库解决
'DB_deploy_type'=>1
必须要在数据库服务器中进行相应的配置
链接到那台数据库服务器
数据库信息同步
他会在写入的过程中,自动去找一台服务器
读写分离
写的数据比较少,而读的数据很多进行读写分离
'DB_RW_SEPARATE'=>true,
utf8
db_charset  db_fields_cache=false,db_fieldtype_check=false
thinkphp为我们准备考了一个C,来读取配置文件当中的值
一般是在控制器中读出,分配到模板当中去

4种实例化模型的方法
1.创建一个基础模型
2.实例化一个系统自带的数据库操作类
//可以不用自己去定义相关的数据库操作类
thinkphp会自动帮我们找到这个数据库中的表,并且把表中的相应字段全部拿过来
//因为我们命名表的时候,think_user thinkphp会按照大小写区分有没加下划线
$user=new Model('user');
就能够直接使用这个模型操作类中的方法进行相应的操作
$list=$user->select();
可以不用去管遍历形成数组的过程
thinkphp考虑到我们操作的时候,每次写new model
$user=M('user');

你需要实例化一张表同时实例化自己的实例化操作类
$user=M('user','CommonModel');
$list=$user->select();
$user->abd();
$user=new CommonModel('user');

实例化一个用户定义的模型
需要手动创建一个模型  user可以针对这张表,来写上一个自定义模型,在自动模型中可以封装thinkphp为我们提供的一些高级功能,还可以封装一些自定义方法来实现更加复杂的业务逻辑
你实例化一个自定义模型的时候,一般你的表名和你的类名,所以不需要额外的传表名
$user=new UserModel();
$list=$user->select();
实例化自定义模型的第二种和第三者方法的不同
$user=D('user');

4.实例化一个空模型,它并不知道你要实例化操作时的是哪一张表
$user=new Model();
$list=$user->query(select * from think_user);

$user=M();

D方法可以自动检测模型类,不存在是会抛出一个异常,不会去重复实例化
默认的D方法只支持调用当前下面的模型
$user=D('admin','user');