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
一个可以找出源代码中所有中文的工具
Oct 25 PHP
php mysql数据库操作分页类
Jun 04 PHP
解析:使用php mongodb扩展时 需要注意的事项
Jun 18 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
PHP中JSON的应用技巧
Oct 10 PHP
yii2项目实战之restful api授权验证详解
May 20 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 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
中英文字符串翻转函数
2008/12/09 PHP
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php实现统计邮件大小的方法
2013/08/06 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
jquery 元素相对定位代码
2010/10/15 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
Node.js进阶之核心模块https入门
2018/05/23 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
简单使用Python自动生成文章
2014/12/25 Python
Python去除字符串两端空格的方法
2015/05/21 Python
Python工程师面试题 与Python Web相关
2016/01/14 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
学生信息管理系统python版
2018/10/17 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
保护野生动物倡议书
2014/05/16 职场文书
健康教育评估方案
2014/05/25 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
工作态度检讨书范文
2015/05/06 职场文书
班主任培训研修日志
2015/11/13 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python