ThinkPHP连接数据库及主从数据库的设置教程


Posted in PHP onAugust 22, 2014

本文较为详细的讲述了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程序设计能有所帮助。

PHP 相关文章推荐
解决GD中文乱码问题
Feb 14 PHP
php下删除字符串中HTML标签的函数
Aug 27 PHP
php面向对象全攻略 (十六) 对象的串行化
Sep 30 PHP
php zip文件解压类代码
Dec 02 PHP
php的array_multisort()使用方法介绍
May 16 PHP
浅析PHP递归函数返回值使用方法
Feb 18 PHP
php二维数组排序详解
Nov 06 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
PHP读取word文档的方法分析【基于COM组件】
Aug 01 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
PHP simplexml_load_file()函数讲解
Feb 03 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 #PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 #PHP
ThinkPHP基本的增删查改操作实例教程
Aug 22 #PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 #PHP
ThinkPHP验证码和分页实例教程
Aug 22 #PHP
ThinkPHP文件上传实例教程
Aug 22 #PHP
ThinkPHP中ajax使用实例教程
Aug 22 #PHP
You might like
追求程序速度,而不是编程的速度
2008/04/23 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python读取word文档的方法
2015/05/09 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
市政施工员自我鉴定
2014/01/15 职场文书
大学毕业感言200字
2014/03/09 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
长城导游词300字
2015/01/30 职场文书
大班下学期个人总结
2015/02/13 职场文书
放射科岗位职责
2015/02/14 职场文书
药店收银员岗位职责
2015/04/07 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
分享Python获取本机IP地址的几种方法
2022/03/17 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA