zoukankan      html  css  js  c++  java
  • ThinkPHP教程_PHP框架之ThinkPHP(五)【连接数据库与主从数据库设置】

    一、连接数据库

      ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,只需要使用公共的Db类(系统目录->Lib目录->Think目录->Db目录->Db.class.php)进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库适配器(系统目录->Lib目录->Think目录->Db目录->Driver目录下的各个数据适配文件),目前支持的数据库类型如下

      

      ThinkPHP并不是一开始就会连接数据库,而是在有数据库操作时才会去连接数据库

      在系统第一次操作模型的时候,ThinkPHP会自动连接数据库获取相关模型类的数据字段信息,并缓存下来,即数据库表字段缓存

      1、配置数据库连接信息(推荐方式)

      要想连接数据库,必须配置正确的数据库连接信息,而配置方式有多种

        ·项目配置文件中配置

        

        为了避免多个应用(Application)重复配置数据库连接信息,可以将数据库连接信息写到公用的配置文件中去,比如说项目目录->config.php文件(格式依然是按照访问一个数组)中,然后在各个应用的配置文件中接收项目目录->config.php文件中返回的数组,并与自己的配置文件中的其它配置数组合并(merge),最后返回

        

        

        

        

        注意,include同一级目录下的文件要么这样'./文件名'要么'文件名',但是不能'.文件名'

        在项目配置文件中配置数据库连接信息是推荐方式,还可以在调试配置文件中配置数据库连接信息,那么在调试模式下后者生效,部署模式下前者生效

      2、DSN方式

      通常用于在模块中手动连接数据库,或者用于创建多个数据库连接

       

      3、DSN的数组方式

      也是通常用于在模块中手动连接数据库,或者用于创建多个数据库连接

      

      4、模型(Model)中配置

      即在模型中定义一个成员属性,该成员属性是一个包含数据库连接信息的数组字符串

      

      那么在实例化模型对象时,就会使用该数据库连接信息去连接数据库,通常用于连接其它数据库

    二、主从数据库

      解决站点高负载、高并发的一种手段,因为从某种意义上说,站点的瓶颈落在了数据库头上

      ThinkPHP的数据库模型支持主从数据库的连接,在项目配置文件中设置'DB_DEPLOY_TYPE'=>1即可开启主从数据库支持

      

      注意,在所用的数据库服务器端上也要进行数据库集群(分布式数据库)的设置

      做完以上两点配置之后,就可以对数据库连接信息进行配置了,因为是连接主从数据库,所以数据库连接信息有些注意点

      1、主从数据库类型必须相同,即不能一个MySQL,一个Oracle  

      2、连接的数据库个数取决于DB_HOST定义的数量,所以即使是两个相同的IP也需要重复定义,但是其他的参数如果存在相同的可以不用重复定义

      3、在未进行读写分离时,ThinkPHP会在读/写操作时,自动的去找主从服务器中的任意一台

      4、读写分离,在实际开发中,是必须要进行读写分离的,因为一般来说,读操作要比写操作多得多

        ·配置:在项目配置文件中设置'DB_RW_SEPARATE'=>true即可开启

        ·机制:一台主服务器,多台从服务器,主服务器是写服务器所有从服务器是读服务器

      5、主从数据库数据信息同步不是ThinkPHP的事,是数据库本身的事

      6、字符集默认为utf8,注意,切记不要写成utf-8!

      ThinkPHP的C()函数,用来获取和设置配置文件的配置项,在模块中读取,并分配到模板中

  • 相关阅读:
    JAVA 打开文件乱码
    单引号和双引号的区别
    global和$GLOBALS[]的区别
    php统计数组元素个数
    PHP5.3x不再支持ereg和eregi
    discuz论坛diy标签
    网页特效过渡功能
    discuz缓存机制
    php数组中删除元素
    speedphp是个不错的框架
  • 原文地址:https://www.cnblogs.com/TigerYangWTH/p/5801583.html
Copyright © 2011-2022 走看看