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程序
Oct 09 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
PHP使用递归生成文章树
Apr 21 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
Zend Framework常用校验器详解
Dec 09 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
微信公众号模板消息群发php代码示例
Dec 29 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
PHP常用日期加减计算方法实例小结
Jul 31 PHP
Yii框架响应组件用法实例分析
Sep 04 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循环跳出的问题
2013/07/01 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
详解Python中的strftime()方法的使用
2015/05/22 Python
简单了解什么是神经网络
2017/12/23 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
Python常见工厂函数用法示例
2018/03/21 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
python 实现倒排索引的方法
2018/12/25 Python
python多进程间通信代码实例
2019/09/30 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
JAVA和C++的区别
2013/10/06 面试题
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
商务日语毕业生自荐信范文
2013/11/14 职场文书
会计专业的自荐信
2013/12/12 职场文书
毕业生自我鉴定实例
2014/01/21 职场文书
翻译学院毕业生自荐书
2014/02/02 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
python munch库的使用解析
2021/05/25 Python