ThinkPHP学习笔记(五)数据库的链接设置以及主从数据库配置需要注意的问题


database.php配置文件放在入口文件的同级目录之下:

<?php
return array(

//链接数据库的方式:见DatabaseAction.class.php


//主从数据库的配置(Common/convention.php)
//1.开启数据库的分布式
    'DB_DEPLOY_TYPE'=> 1, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
//2.必须要做数据库服务器中进行相应的配置
//百度设置数据库集群
//3.读写分离(默认是第一台服务器是写入服务器,其他的服务器的读服务器)
    'DB_RW_SEPARATE'=> true,// 数据库读写是否分离 主从式有效
//ThinkPHP默认的字符集是utf8,不要加中划线- 
	'DB_FIELDTYPE_CHECK'=> false, // 是否进行字段类型检查
    'DB_FIELDS_CACHE'   => true,  // 启用字段缓存
    'DB_CHARSET'        => 'utf8',// 数据库编码默认采用utf8
    



//由于数据库的链接需要多个项目来使用可以在一个页面中定义个公共的配置项,返回一个array数组
//ThinkPHP中的db目录:Lib/Think/Db/Db.class.php
//连接数据库设置
'DB_TYPE'=>'mysql',
'DB_HOST'=>'localhost',
//设置主从数据时用
//'DB_HOST'=>'localhost,192.168.123.1',
'DB_NAME'=>'hibernate',
//设置主从数据时若名字不同
//'DB_NAME'=>'hibernate,ant,thinkphp',
'DB_USER'=>'root',
'DB_PWD'=>'root',
//如果未修改可以不用填写
'DB_POST'=>'3306',
'DB_PREFIX'=>'tb_',
);
?>

修改conf.php文件

<?php
$selfConfig = array(
'URL_MODEL'=>1,

'URL_PATNINFO_MODEL'=>2,

//修改模板左右定界符
'TMPL_L_DELIM'=>'<!--{',
'TMPL_R_DELIM'=>'}-->',

//开启调试模式
//1.模拟linux系统来识别大小写
//2.方法名的大小写与模板文件大小写有关
'APP_DEBUG'=>true,

);

$databaseConfig = include './database.php';


return array_merge($selfConfig,$databaseConfig);

?>

Action中收到设置数据库的链接方式:

<?php
class DatabaseAction extends Action{
	public function index(){
		$host= C('DB_HOST');
		
		
		//手动链接一:链接远程数据库
		$dsn='mysql://username:[email protected]:3306/thinkPHP';
		$db=new Db($dsn);
		//手动链接二:链接远程数据库
		$dsn=array(
			'dbms'=>'mysql',
			'username'=>'root',
			'password'=>'root',
			'hostname'=>'localhost',
			'hostport'=>'3306',
			'database'=>'hibernate',
		);
		$db=new Db($dsn);
		//手动链接三:必须写在自定义模型当中,见DataBaseModel.class.php
		
		
        $this->assign("configTest",$host);
		$this->display();
	}
}
?>

在Model中进行使用

<?php
	class DataBaseMode extends Model{
		//方式一:
//		protected $connection='mysql://username:[email protected]:3306/thinkPHP';
		//方式二:
		protected $connection=array(
			'dbms'=>'mysql',
			'username'=>'root',
			'password'=>'root',
			'hostname'=>'localhost',
			'hostport'=>'3306',
			'database'=>'hibernate',
		);
	}
?>


你可能感兴趣的:(thinkphp)