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 相关文章推荐
基于mysql的论坛(3)
Oct 09 PHP
php开发工具之vs2005图解
Jan 12 PHP
JS实现php的伪分页
May 25 PHP
PHP similar_text 字符串的相似性比较函数
May 26 PHP
PHP手机号码归属地查询代码(API接口/mysql)
Sep 04 PHP
php随机输出名人名言的代码
Oct 07 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
php函数间的参数传递(值传递/引用传递)
Sep 23 PHP
php开启openssl的方法
May 15 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
twig里使用js变量的方法
Feb 05 PHP
Laravel程序架构设计思路之使用动作类
Jun 07 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下使用以下代码连接并测试
2008/04/09 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
教育技术学专业职业规划书
2014/03/03 职场文书
交通事故协议书范文
2014/10/23 职场文书
初婚未育证明样本
2015/06/18 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
mysql事务隔离级别详情
2021/10/24 MySQL
python如何将mat文件转为png
2022/07/15 Python