PHP
·
发表于 5年以前
·
阅读量:8305
本文较为详细的讲述了ThinkPHP连接数据库及主从数据库的设置方法,在ThinkPHP项目开发中非常实用。具体实现方法如下:
一、项目根目录上建立config.php
代码如下所示:
<?php
if(!defined('THINK_PATH')) exit();
return array(
'DB_TYPE' => 'mysql',// 数据库类型
'DB_HOST' => 'localhost',// 主机
'DB_NAME' => 'aoli',// 数据库名称
'DB_USER' => 'root',// 数据库用户名
'DB_PWD' => '',// 数据库密码
'DB_PREFIX' => '',// 数据表前缀
'DB_CHARSET' => 'utf8',// 网站编码
'DB_PORT' => '3306',// 数据库端口
);
?>
二、设置项目配置文件
\Home\Conf\config.php文件代码如下:
<?php
$arr1=array{
'URL_MODEL'=>2, //pathinfo访问模式
};
$arr2=include './config.php';
return array_merge($arr1,$arr2); //数组整合
?>
\Admin\Conf\config.php文件代码如下:
<?php
$arr1=array{
'URL_MODEL'=>1, //普通访问模式 get方式
};
$arr2=include './config.php';
return array_merge($arr1,$arr2); //数组整合
?>
三、主从数据库设置
该设置比较适合高并发,高负载的大型网站
读者可以到\ThinkPHP\Common\convention.php中查看默认的系统常量设置
config.php文件设置如下:
<?php
return array(
//'配置项'=>'配置值'
//后台
'URL_MODE'=>0,
'DB_TYPE'=>'mysql',
'DB_HOST'=>'localhost,192.168.1.2',//两台数据库服务器
'DB_PORT'=>'3306',
'DB_NAME'=>'thinkphptest',//如果数据库名相同,不用定义多个,如果不相同与服务器依次对应
'DB_USER'=>'root',
'DB_PWD'=>'password',
//表前缀
'DB_PREFIX'=>'think_',
//接下来配置主从数据库
'DB_DEPLOY_TYPE'=>1,//开启分布式数据库
'DB_RW_SEPARATE'=>ture,//读写分离,默认第一台服务器为写入服务器,其它的只读取不写入
);
?>
在某个action中读取数据库文件参数:
$hh=C('DB_HOST'); //C可以读取配置文件中的值
$pp=C('DB_PREFIX');
$this->assain('h',$hh);
$this->assain('p',$pp);
$this->display();
这个action下的tpl:
数据库服务器地址:{$h}
数据库表前缀:{$p}
希望本文所述方法对大家的ThinkPHP程序设计能有所帮助。