请问一下tporm模型数据库连接怎么动态传入配置

晚安。

问题描述

原文地址 https://www.workerman.net/q/9505
根据这个里面的实现还是要先在thinkorm.php 里面先定义好数据库连接信息.这个文件不配置数据库的信息
我这边是数据库配置信息都是存在数据库
然后在控制器调用的时候传入数据库连接信息数组传入。
根据这个传入的数据库配置信息来执行查询操作

程序代码

模型
<?php

namespace app\api\model;

use think\Model;
use think\facade\Db;

/**
 * 用户
 */
class UserModel extends Model
{
    // 表名
    protected $table = 'base_user';
    protected $connection;

    public function __construct($connection)
    {
        $this->connection = $connection;
        parent::construct($connection);
    }

}
控制器调用

$dd = [
            // 数据库类型
            'type'            => 'mysql',
            // 服务器地址
            'hostname'        => '127.0.0.1',
            // 数据库名
            'database'        => 'ceshi',
            // 数据库用户名
            'username'        => 'root',
            // 数据库密码
            'password'        => 'root',
            // 数据库连接端口
            'hostport'        => '3306',
            // 数据库连接参数
            'params'          => [
                // 连接超时3秒
                \PDO::ATTR_TIMEOUT => 3,
            ],
            // 数据库编码默认采用utf8
            'charset'         => 'utf8mb4',
            // 数据库表前缀
            'prefix'          => '',
            // 断线重连
            'break_reconnect' => true,
            // 关闭SQL监听日志
            'trigger_sql' => true,
            // 自定义分页类
            'bootstrap'       => '',
        ];
        $model = new UserModel($dd);
        $res = $model->select();

这样测试不可以

操作系统及workerman/webman等框架组件具体版本

最新

276 0 0
0个回答

🔝