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入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
基于MySQL到MongoDB简易对照表的详解
Jun 03 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
PHP实现的二分查找算法实例分析
Dec 19 PHP
PHP strripos函数用法总结
Feb 11 PHP
php输出反斜杠的实例方法
Sep 19 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 17 PHP
XAMPP升级PHP版本实现步骤解析
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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
常用的php ADODB使用方法集锦
2008/03/25 PHP
PHP面向对象分析设计的61条军规小结
2010/07/17 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
wxPython窗口的继承机制实例分析
2014/09/28 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
班会关于环保演讲稿
2013/12/29 职场文书
小学生自我评价范文
2014/01/25 职场文书
学校联谊活动方案
2014/02/15 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
毕业班工作总结
2015/08/10 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
Elasticsearch 配置详解
2022/04/19 Java/Android
详解如何使用Nginx解决跨域问题
2022/05/06 Servers