博客列表 >ThinkPHP5数据库连接的四种方式[终结篇]

ThinkPHP5数据库连接的四种方式[终结篇]

路雲萧的博客
路雲萧的博客原创
2017年09月28日 18:42:381209浏览

一、用配置文件database.php中的信息进行连接

/*
*惰性连接,实际上只是做好连准备,并没有连,
*只有查询时才真正连接到指定的数据库
*返回连接的配置信息 database.php 的内容,数组表示
*/
$link = Db::connect();
dump($link);

二、给connect()方法传参连接

$link = Db::connect([
 // 数据库类型
   'type'            => 'mysql',
   // 服务器地址
   'hostname'        => 'localhost',
   // 数据库名
   'database'        => 'tp5',
   // 用户名
   'username'        => 'root',
   // 密码
   'password'        => 'root',
   // 端口
   'hostport'        => '',
   // 连接dsn
   'dsn'             => '',
    // 数据库连接参数
   'params'          => [],
   // 数据库编码默认采用utf8
   'charset'         => 'utf8',
   // 数据库表前缀
   'prefix'          => '',
 ]);
 dump($link);

三、DSN字符串做为connect()方法的参数

DSN字符串格式: 数据库类型://用户名:密码@地址:端口/数据库#编码

//dsn中配置信息会替代database.php配置文件中的信息
$dsn = 'mysql://root_root:root@localhost:3306/tp5#utf8';
$link = Db::connect($dsn);
dump($link);

四、在应用配置config.php中创建一个二级配置项,内容与database.php内容一致,将这个配置项当做connect()方法参数传入

第一步:

//config.php中再手工添加一个配置项(直接复制database.php中内容即可)
//自定义数据库配置
   'my_db_config' => [
       // 数据库类型
       'type'            => 'mysql',
       // 服务器地址
       'hostname'        => 'localhost',
       // 数据库名
       'database'        => 'tp5',
       // 用户名
       'username'        => 'root',
       // 密码
       'password'        => '123456',
       // 端口
       'hostport'        => '',
       // 连接dsn
       'dsn'             => '',
       // 数据库连接参数
       'params'          => [],
       // 数据库编码默认采用utf8
       'charset'         => 'utf8',
       // 数据库表前缀
       'prefix'          => '',
       // 数据库调试模式
       'debug'           => true,
       // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
       'deploy'          => 0,
       // 数据库读写是否分离 主从式有效
       'rw_separate'     => false,
       // 读写分离后 主服务器数量
       'master_num'      => 1,
       // 指定从服务器序号
       'slave_no'        => '',
       // 是否严格检查字段是否存在
       'fields_strict'   => true,
        // 数据集返回类型
       'resultset_type'  => 'array',
       // 自动写入时间戳字段
       'auto_timestamp'  => false,
       // 时间字段取出后的默认时间格式
       'datetime_format' => 'Y-m-d H:i:s',
       // 是否需要进行SQL性能分析
       'sql_explain'     => false,
   ]

 第二步:

//将config.php中新增加的数据库配置信息项的名称,做为connect()方法参数传入
$link = Db::connect('my_db_config');
dump($link);
等价语法:
//等价于第二种方式,直接传递一个连接配置数组给connect()方法做参数
$link = Db::connect(\think\Config::get('my_db_config'));
dump($link);




声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议