tp5数据库链接

Posted lichihua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp5数据库链接相关的知识,希望对你有一定的参考价值。

1在config/database.php中配置

1.1直接

return [
    // 数据库类型
    ‘type‘            => ‘mysql‘,
    // 服务器地址
    ‘hostname‘        => ‘127.0.0.1‘,
    // 数据库名
    ‘database‘        => ‘hainan‘,
    // 用户名
    ‘username‘        => ‘root‘,
    // 密码
    ‘password‘        => ‘root‘,
    // 端口
    ‘hostport‘        => ‘‘,
    // 连接dsn
    ‘dsn‘             => ‘‘,
    // 数据库连接参数
    ‘params‘          => [],
    // 数据库编码默认采用utf8
    ‘charset‘         => ‘utf8‘,
    // 数据库表前缀
    ‘prefix‘          => ‘dl_‘,
    // 数据库调试模式
    ‘debug‘           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    ‘deploy‘          => 0,
    // 数据库读写是否分离 主从式有效
    ‘rw_separate‘     => false,
    // 读写分离后 主服务器数量
    ‘master_num‘      => 1,
    // 指定从服务器序号
    ‘slave_no‘        => ‘‘,
    // 自动读取主库数据
    ‘read_master‘     => false,
    // 是否严格检查字段是否存在
    ‘fields_strict‘   => true,
    // 数据集返回类型
    ‘resultset_type‘  => ‘array‘,
    // 自动写入时间戳字段
    ‘auto_timestamp‘  => false,
    // 时间字段取出后的默认时间格式
    ‘datetime_format‘ => ‘Y-m-d H:i:s‘,
    // 是否需要进行SQL性能分析
    ‘sql_explain‘     => false,
];

1.2Env配置

use thinkEnv;
return [
    // 数据库类型
    ‘type‘            => ‘mysql‘,
    // 服务器地址
    ‘hostname‘        => Env::get(‘database.hostname‘,‘127.0.0.1‘),
    // 数据库名
    ‘database‘        => Env::get(‘database.database‘,‘cp‘),
    // 用户名
    ‘username‘        => Env::get(‘database.username‘,‘root‘),
    // 密码
    ‘password‘        => Env::get(‘database.password‘,‘root‘),
    // 端口
    ‘hostport‘        => Env::get(‘database.hostport‘,‘3306‘),
    // 连接dsn
    ‘dsn‘             => ‘‘,
    // 数据库连接参数
    ‘params‘          => [],
    // 数据库编码默认采用utf8
    ‘charset‘         => Env::get(‘database.charset‘,‘utf8‘),
    // 数据库表前缀
    ‘prefix‘          => Env::get(‘database.prefix‘,‘dl_‘),
    // 数据库调试模式
    ‘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,
];

.env文件中

app_debug =  true
app_trace =  false

//cache   = redis

[database]
hostname =  127.0.0.1
database =  hainan
username =  root
password =  root
hostport =  3306
charset  =  utf8
prefix   =  dl_

 

2在模型中定义$connection属性设置当前模型对应数据库的链接

class AdminNav extends Base{
    //5.0不支持单独设置当前模型的数据表前缀。 database.php文件里设置‘prefix‘=>‘dl_‘,

    //默认主键为自动识别,如果需要指定,可以设置属性
    //protected $pk = ‘id‘;

    //模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写
    //AdminNav  自动对应到 表前缀(dl)_admin_nav  如不是这张表则用$table申明该模型类数据表
    protected $table = ‘dl_right‘;

    // 设置当前模型的数据库连接
    protected $connection = [
        // 数据库类型
        ‘type‘        => ‘mysql‘,
        // 服务器地址
        ‘hostname‘    => ‘127.0.0.1‘,
        // 数据库名
        ‘database‘    => ‘admindemo‘,
        // 数据库用户名
        ‘username‘    => ‘root‘,
        // 数据库密码
        ‘password‘    => ‘root‘,
        // 数据库编码默认采用utf8
        ‘charset‘     => ‘utf8‘,
        // 数据库表前缀
        ‘prefix‘      => ‘dl_‘,
        // 数据库调试模式
        ‘debug‘       => false,
    ];
}

 

3、控制器中直接申明

  namespace appindexcontroller;
    use thinkDb;
    class Index extends Controller
    {
        public function demo(Request $res)
        {
            Db::connect([
              // 数据库类型
             ‘type‘            => ‘mysql‘,
              // 服务器地址
              ‘hostname‘        => ‘127.0.0.1‘,
              // 数据库名
             ‘database‘        => ‘hainan‘,
              // 用户名
              ‘username‘        => ‘root‘,
              // 密码
              ‘password‘        => ‘root‘,
              // 端口
              ‘hostport‘        => ‘‘,
             // 连接dsn
              ‘dsn‘             => ‘‘,
              // 数据库连接参数
              ‘params‘          => [],
              // 数据库编码默认采用utf8
              ‘charset‘         => ‘utf8‘,
              // 数据库表前缀
              ‘prefix‘          => ‘dl_‘,
              // 数据库调试模式
              ‘debug‘           => true,
              // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
              ‘deploy‘          => 0,
              // 数据库读写是否分离 主从式有效
              ‘rw_separate‘     => false,
              // 读写分离后 主服务器数量
              ‘master_num‘      => 1,
              // 指定从服务器序号
              ‘slave_no‘        => ‘‘,
              // 自动读取主库数据
              ‘read_master‘     => false,
              // 是否严格检查字段是否存在
              ‘fields_strict‘   => true,
              // 数据集返回类型
              ‘resultset_type‘  => ‘array‘,
              // 自动写入时间戳字段
              ‘auto_timestamp‘  => false,
              // 时间字段取出后的默认时间格式
              ‘datetime_format‘ => ‘Y-m-d H:i:s‘,
               // 是否需要进行SQL性能分析
              ‘sql_explain‘     => false,
            ]);
            //或者使用字符串
            Db::connect(‘mysql://root:[email protected]:3306/dl_#utf8‘);
        }
    }

 

以上是关于tp5数据库链接的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序实现微信登陆(TP5后端)

TP5架构下链接SQL数据库的一种方法

TP5 Model 功能总结

微信小程序代码片段

搜索引擎简单的高级使用案例

TP5.0:跳转链接到某控制器下的某方法