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 session有效期问题
Apr 26 PHP
PHP HTML代码串 截取实现代码
Jun 29 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
如何使用php输出时间格式
Aug 31 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
Nov 05 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
PHP内核探索之变量
Dec 22 PHP
php微信开发之自定义菜单实现
Nov 18 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
php7下的filesize函数
Sep 30 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魔术引号所带来的安全问题分析
2014/07/15 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
详解js异步文件加载器
2016/01/24 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
firefox插件Firebug的使用教程
2010/01/02 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
python实现根据图标提取分类应用程序实例
2014/09/28 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
Python self用法详解
2020/11/28 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
群众路线问题查摆对照检查材料
2014/10/04 职场文书
教师先进个人材料
2014/12/17 职场文书
python办公自动化之excel的操作
2021/05/23 Python
Python实现byte转integer
2021/06/03 Python
Java中的继承、多态以及封装
2022/04/11 Java/Android