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语法(1)
Oct 09 PHP
PHP 的 __FILE__ 常量
Jan 15 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
Oct 29 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
sql注入与转义的php函数代码
Jun 17 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
PHP生成sitemap.xml地图函数
Nov 13 PHP
我整理的PHP 7.0主要新特性
Jan 07 PHP
php微信开发之图片回复功能
Jun 14 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 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使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
php分页查询的简单实现代码
2017/03/14 PHP
php session的应用详细介绍
2017/03/22 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
JavaScript DOM 学习第九章 选取范围的介绍
2010/02/19 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
Js控制弹窗实现在任意分辨率下居中显示
2013/08/01 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
简历自荐信
2013/12/02 职场文书
财务总经理岗位职责
2014/02/16 职场文书
国庆节活动总结
2014/08/26 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers