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 相关文章推荐
PHP读MYSQL中文乱码的解决方法
Dec 17 PHP
模拟flock实现文件锁定
Feb 14 PHP
php实现简单洗牌算法
Jun 18 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
destoon数据库表说明汇总
Jul 15 PHP
php实现的RSS生成类实例
Apr 23 PHP
php实现购物车功能(上)
Jul 23 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP实现的简单适配器模式示例
Jun 22 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
laravel dingo API返回自定义错误信息的实例
Sep 29 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
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
javascript 多浏览器 事件大全
2010/03/23 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
js实现弹窗效果
2020/08/09 Javascript
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
经典c++面试题五
2014/12/17 面试题
以太网Ethernet IEEE802.3
2013/08/05 面试题
.net C#面试题
2012/08/28 面试题
个人自我鉴定范文
2013/10/04 职场文书
趣味运动会活动方案
2014/02/12 职场文书
2014年节能工作总结
2014/12/18 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
小学语文国培研修日志
2015/11/13 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
Python turtle实现贪吃蛇游戏
2021/06/18 Python