|
1. 静态链接:应用/模块中的数据库配置文件 database.php 【使用场景: 这是建立在数据库只有一个的基础上】
2. 动态链接 : 入口 DB.php 中的connect(参数【可是是数组可以是字符串】) 方法 【使用场景:这是建立在需要在多个数据库之间转换环境的基础上】
使用:
第一步:添加手工配置文件: config/database.php
第二步:仿照原数据库配置文件重新返回一串数据库配置信息: database.php 内容如下- <?php
- return [
- // 数据库类型
- 'type' => 'mysql',
- // 服务器地址
- 'hostname' => '127.0.0.1',
- // 数据库名
- 'database' => 'tp5test',
- // 用户名
- 'username' => 'root',
- // 密码
- 'password' => '',
- // 端口 没有修改的话是3306
- '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,
- ];
复制代码 第三步:在方法中完成数据库的链接与查询
3.1 获取实例化后的数据库对象
3.2 导入数据库入口类 db : use think\Db; 注意 导入 和继承不一样
3.3 贴上全部静态的方法:- class Dbt
- {
- public function mv1()
- {
- // 1.获取数据库的链接实例/对象 并且保存到 一个变量中
- $link = Db::connect();
-
- // 2.用链接实例调用查询类的查询方法 并将查询到的值 保存早一个变量中
- $req = $link->table('staff')->select();
-
- dump($req);
- }
- public function mv2()
- {
- return '进来了 }
- }
复制代码
动态方法:在静态的基础上, 去掉database.php 文件 ,然后在 Db::connect() ; 函数中 传入参数- class Dbt
- {
- public function mv3()
- {
- $dbconfig =[
- 'type'=>'mysql', //数据库类型
- 'hostname'=>'127.0.0.1', //数据库地址
- 'username'=>'root', //数据库用户名
- 'password'=>'', //数据库密码
- 'database'=>'tp5test', //数据库名称
- ];
- $link = Db::connect($dbconfig);
- $a = $link->table('staff')->select();
- dump($a);
- }
- }
复制代码
还有一种链接字符串的配置: 【就是把用户名密码等信息 都拼接在字符串中】
该字符串格式:- public function mv4()
- {
- // 数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集
- $b = 'mysql://root:@127.0.0.1:3306/tp5test#utf8 $link = Db::connect($b);
- $a = $link->table('staff')->select();
- dump($a);
- }
- }
复制代码 下面写一个简化版- // 简化版 先还原config/database.php
- class Dbt
- {
- public function mv5()
- {
- // 其实就是代表DB类可以直接调用所有的查询方法
- $a = Db::table('staff')->select();
- dump($a);
- }
- }
复制代码
|
|