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利用header函数实现文件下载时直接提示保存
Nov 12 PHP
PHP学习之数组的定义和填充
Apr 17 PHP
php标签云的实现代码
Oct 10 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 PHP
php时区转换转换函数
Jan 07 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
Jun 25 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
Yii2.0高级框架数据库增删改查的一些操作
Nov 16 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
PHP生成图表pChart的示例解析
Jul 31 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使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
2019/08/03 PHP
jquery的$getjson调用并获取远程的JSON字符串问题
2012/12/10 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
javascript实现数组去重的多种方法
2016/03/14 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
wxpython学习笔记(推荐查看)
2014/06/09 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
深入理解python中的atexit模块
2017/03/07 Python
python读取文件名并改名字的实例
2019/01/07 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
python字符串的index和find的区别详解
2020/06/20 Python
python如何求圆的面积
2020/07/01 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
公司中秋节活动方案
2014/02/12 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
研究生导师推荐信
2015/03/25 职场文书
升职自荐信范文
2015/03/27 职场文书
2015年酒店工作总结
2015/04/28 职场文书
会计实训总结范文
2015/08/03 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
python中os.path.join()函数实例用法
2021/05/26 Python