数据库功能介绍

目前YY框架的关系型数据库只支持mysql一种,近期我们不会推出基于其他类型数据库的适配器。

数据库配置:

数据的各项配置在配置文件conf.php中定义:

/////////////////////数据库配置 编码数据库编码为 utf-8
/**数据库地址~*/
public static $db_host = "localhost";
/**数据库端口~*/
public static $db_port = "3306";
/**数据库名~*/
public static $db_dbname = "yyuc";
/**数据库用户名~*/
public static $db_username = "root";
/**数据库密码~*/
public static $db_password = "root";
/**数据库表前缀~为了区分同一个数据库中不同框架的数据表,虚拟主机环境下我们建议设置此项。*/
public static $db_tablePrefix = "";

以上为基本的数据库配置信息,有的时候出于性能考虑你可能会用到主从数据库或多库数据库,那么我们还需要下面的配置信息:

/**DB连接的扩展信息~一般用于大数据量时的 主从数据库和多库数据库*/
public static $db_boys = array(
    'db1'=>array('host'=>'localhost1','port'=>'3306','dbname'=>'sino','username'=>'root','password'=>'root'),
    'db2'=>array('host'=>'localhost1','port'=>'3307','dbname'=>'sino','username'=>'root','password'=>'root'),
    'db3'=>array('host'=>'localhost2','port'=>'3306','dbname'=>'sino','username'=>'root','password'=>'root'),
    'db4'=>array('host'=>'localhost3','port'=>'3306','dbname'=>'sino','username'=>'root','password'=>'root')
);

到这里你可能还是弄不明白如何使用这些数据库连接信息,不急,接着往下看。

数据库连接的获取

get_db

DB::get_db(string $conn_name) 
单列模式获得数据库连接类
如果人为指定连接名称则DB类会按照多库规则处理,不会自动切换数据库连接


Parameters:
string $conn_name 多库并存的情况下指明要获得连接的名称 默认为true
传入false则锁定到主数据库
传入null切换主数据库恢复到主从模式
传入true时随机切换到从属数据库

Returns:
  DB

通常情况下不建议直接调用get_db获得数据连接进行CUD(非查询)操作,而是通过数据库模型类进行操纵。通过数据库模型类操作的CUD信息都会通过默认连接(非db_boys连接)保存到数据库中。

具体指定使用某一个连接:

$db = DB::get_db('db1');

这样无论进行何种操作(包括CUD操作)都会使用db_boys中指定的db1信息进行连接,直至再次调用get_db方法或请求退出

指定使用主数据库连接:

$db = DB::get_db('false');

这样无论进行何种操作(包括R操作)都会使用主数据库信息进行连接,直至再次调用get_db方法或请求退出

如果主数据库和db_boys均配置了连接信息时,系统默认使用主从数据库模式,通过数据库模型调用的有关数据操作规则如下:

CUD(非查询)操作使用主数据库连接,R(查询)操作使用db_boys的一条随机信息连接。

注意: 主从数据下务必做好各数据库细信息的同步。