我的编程空间,编程开发者的网络收藏夹
学习永远不晚

thinkphp可不可以单独配置新数据库

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

thinkphp可不可以单独配置新数据库

这篇文章主要讲解了“thinkphp可不可以单独配置新数据库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“thinkphp可不可以单独配置新数据库”吧!

thinkphp可以单独配置新数据库,其设置方法是:1、在应用配置文件或者模块配置文件中添加配置参数如“'DB_HOST' => 'localhost'...”;2、在不同的应用状态的配置文件里面定义独立的数据库配置信息;3、在实例化的时候指定数据库连接信息,语法如“$User = M('User','other_','mysql://root...”。

thinkphp可以单独配置新数据库吗?

可以。

Thinkphp 模型-连接数据库独立配置model数据库连接

连接数据库

ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。目前的数据库包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括对PDO的支持。

如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式。

一、全局配置定义

常用的配置方式是在应用配置文件或者模块配置文件中添加下面的配置参数:

//数据库配置信息'DB_TYPE' => 'mysql', // 数据库类型'DB_HOST' => 'localhost', // 服务器地址'DB_NAME' => 'thinkphp', // 数据库名'DB_USER' => 'root', // 用户名'DB_PWD' => '123456', // 密码'DB_PORT' => 3306, // 端口'DB_PREFIX' => 'think_', // 数据库表前缀'DB_CHARSET'=> 'utf8', // 字符集

数据库的类型由DB_TYPE参数设置。

下面是目前支持的数据库设置:

thinkphp可不可以单独配置新数据库

如果DB_TYPE使用PDO类型的话,数据库类型则由DB_DSN配置决定。

或者采用如下配置

'DB_DSN' => 'mysql://root:123456@localhost:3306/thinkphp#utf8'

使用DB_DSN方式定义可以简化配置参数,DSN参数格式为:

数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集

字符集设置需要3.2.1版本以上有效,字符集如果没有设置的话,默认为utf8。

如果两种配置参数同时存在的话,DB_DSN配置参数优先。

注意:如果要设置分布式数据库,暂时不支持DB_DSN方式配置。

如果采用PDO驱动的话,则必须首先配置**DB_TYPE **为pdo,然后还需要单独配置其他参数,例如:

//PDO连接方式'DB_TYPE' => 'pdo', // 数据库类型'DB_USER' => 'root', // 用户名'DB_PWD' => '', // 密码'DB_PREFIX' => 'think_', // 数据库表前缀'DB_DSN' => 'mysql:host=localhost;dbname=thinkphp;charset=UTF-8'

注意:PDO方式的DB_DSN配置格式有所区别,根据不同的数据库类型设置有所不同,具体可以参考PHP手册。

配置文件定义的数据库连接信息一般是系统默认采用的,因为一般一个应用的数据库访问配置是相同的。该方法系统在连接数据库的时候会自动获取,无需手动连接。

可以对每个模块定义不同的数据库连接信息,如果开启了调试模式的话,还可以在不同的应用状态的配置文件里面定义独立的数据库配置信息。

二、模型类定义

如果在某个模型类里面定义了connection属性的话,则实例化该自定义模型的时候会采用定义的数据库连接信息,而不是配置文件中设置的默认连接信息,通常用于某些数据表位于当前数据库连接之外的其它数据库,例如:

//在模型里单独设置数据库连接信息namespace Home\ Model;use Think\ Model;class UserModel extends Model{protected $connection = array('db_type' => 'mysql','db_user' => 'root','db_pwd' => '1234','db_host' => 'localhost','db_port' => '3306','db_name' => 'thinkphp','db_charset' => 'utf8',);}

也可以采用DSN方式定义,例如:

//在模型里单独设置数据库连接信息namespace Home\ Model;use Think\ Model;class UserModel extends Model{//或者使用DSN定义protected $connection = 'mysql://root:1234@localhost:3306/thinkphp#utf8';}

如果我们已经在配置文件中配置了额外的数据库连接信息,例如:

//数据库配置1'DB_CONFIG1' => array('db_type' => 'mysql','db_user' => 'root','db_pwd' => '1234','db_host' => 'localhost','db_port' => '3306','db_name' => 'thinkphp','db_charset'=> 'utf8',),//数据库配置2'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';

那么,我们可以把模型类的属性定义改为:

//在模型里单独设置数据库连接信息namespace Home\ Model;use Think\ Model;class UserModel extends Model{//调用配置文件中的数据库配置1protected $connection = 'DB_CONFIG1';}//在模型里单独设置数据库连接信息namespace Home\ Model;use Think\ Model;class InfoModel extends Model{//调用配置文件中的数据库配置1protected $connection = 'DB_CONFIG2';}

三、实例化定义

除了在模型定义的时候指定数据库连接信息外,我们还可以在实例化的时候指定数据库连接信息,例如:如果采用的是M方法实例化模型的话,也可以支持传入不同的数据库连接信息,例如:

$User = M('User','other_','mysql://root:1234@localhost/demo#utf8');

表示实例化User模型,连接的是demo数据库的other_user表,采用的连接信息是第三个参数配置的。如果我们在项目配置文件中已经配置了DB_CONFIG2的话,也可以采用:

$User = M('User','other_','DB_CONFIG2');

需要注意的是,ThinkPHP的数据库连接的惰性的,所以并不是在实例化的时候就连接数据库,而是在有实际的数据操作的时候才会去连接数据库(额外的情况是,在系统第一次实例化模型的时候,会自动连接数据库获取相关模型类对应的数据表的字段信息)。

感谢各位的阅读,以上就是“thinkphp可不可以单独配置新数据库”的内容了,经过本文的学习后,相信大家对thinkphp可不可以单独配置新数据库这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

thinkphp可不可以单独配置新数据库

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

thinkphp可不可以单独配置新数据库

这篇文章主要讲解了“thinkphp可不可以单独配置新数据库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“thinkphp可不可以单独配置新数据库”吧!thinkphp可以单独配置新数据库,
2023-07-04

go语言可不可以写数据库

这篇文章主要介绍了go语言可不可以写数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇go语言可不可以写数据库文章都会有所收获,下面我们一起来看看吧。go语言可以写数据库。Go语言和其他语言不同的地方是,Go
2023-07-04

navicat不安装数据库可以吗

navicat 是数据库管理工具,需要连接数据库才能发挥作用。详细来说,它与 mysql、mariadb、postgresql 等数据库系统兼容,通过建立会话允许用户执行查询、创建表和修改数据等操作。因此,必须先安装数据库,否则 navic
navicat不安装数据库可以吗
2024-04-24

高中学历可不可以报名数据库系统工程师

  可以。数据库系统工程师报名不设学历与资历条件、年龄以及专业等要求限制,只要达到相应的技术水平就可以报考,考生可以根据自己的技术水平选择软考合适的级别与资格进行报考。  软考数据库系统工程师报名没有学历要求,所以高中学历也可以报考。根据《计算机技术与软件专业技术资格考试暂行规定》第八条相关规定:凡遵守中华人民共和国宪
高中学历可不可以报名数据库系统工程师
2024-04-18

Oracle数据库中可以使用哪些内置函数

在Oracle数据库中可以使用许多内置函数,这些函数包括但不限于:字符串函数:如CONCAT、SUBSTR、UPPER、LOWER、INSTR等。数值函数:如ROUND、TRUNC、CEIL、FLOOR、POWER等。日期函数:如SYS
Oracle数据库中可以使用哪些内置函数
2024-04-09

阿里云数据库可以不续费吗?安全吗?

阿里云数据库是阿里云提供的一项数据库服务,能够满足企业的多种需求。但是,用户在使用过程中是否需要续费?同时,阿里云数据库是否安全?本文将对这些问题进行详细的解答。阿里云数据库可以不续费吗?在阿里云数据库中,用户可以按照自己的需求选择不同的套餐,这些套餐通常有免费试用期和付费订阅期。如果你选择的是免费试用期的套餐,
阿里云数据库可以不续费吗?安全吗?
2023-11-02

阿里云数据库为什么你不买可以吗?

随着云计算的普及,越来越多的企业开始使用阿里云数据库。但是,有些人可能对阿里云数据库抱有疑问,是否一定要购买?答案是,是否需要购买阿里云数据库取决于你的具体需求和预算。正文:首先,我们需要了解阿里云数据库是什么。阿里云数据库是一种基于云计算技术的数据存储和处理服务,它可以提供灵活的数据库部署、强大的数据库性能和高
阿里云数据库为什么你不买可以吗?
2023-11-18

数据库学习之十三:mysql高可用配置

十三、mysql高可用1、普通主从复制架构存在的不足高可用?业务不间断的工作。用户的体验不出来业务断点。普通主从环境,存在的问题:1、监控的问题:APP应用程序,并不具备监控数据库的功能,没有责任监控数据库是否能连接。2、选主的问题:3、failover:VI
数据库学习之十三:mysql高可用配置
2019-12-19

数据库管理与高可用----MHA高可用配置及故障切换

原文:https://blog.51cto.com/14625831/2547984
数据库管理与高可用----MHA高可用配置及故障切换
2017-04-19

基于keepalived配置数据库主从实现高可用

基于keepalived配置数据库主从实现高可用使用keepalived来监听端口,实现数据库的高可用。实现效果,其中一台数据库服务器突然出故障或关机时,应该不影响应用正常运行,等待服务器启动之后,数据能够自动同步,保持数据一致性。主从配置架构图及原理主从状态
基于keepalived配置数据库主从实现高可用
2021-08-06

设置mysql数据库外网可以访问和root权限

//开端口 netsh advfirewall firewall add rule name="Open Port 3306" dir=in action=allow protocol=TCP localport=3306 //修改mysql update u
设置mysql数据库外网可以访问和root权限
2015-06-06

如何在MySQL数据库中实现MHA高可用配置

本篇文章给大家分享的是有关如何在MySQL数据库中实现MHA高可用配置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、MHA介绍(一)、什么是MHAMHA(MasterHig
2023-06-06

阿里云数据库服务器cpu可以不动数据直接升级吗

简介在阿里云数据库服务器中,如果需要升级CPU,通常情况下需要先停止或迁移数据,然后再进行CPU升级。这是因为CPU升级会对数据库服务器的硬件性能产生影响,可能会导致数据的中断或丢失。然而,有些情况下,我们可能希望避免数据的中断和损失,那么是否可以通过其他方式实现CPU的升级呢?CPU升级的方式使用阿里云提供的自动升级
阿里云数据库服务器cpu可以不动数据直接升级吗
2023-12-26

云服务器可以放数据库吗手机怎么放不了

首先,云服务器是一种虚拟的服务器,它可以为用户提供云服务。用户在使用云服务器的时候,实际上是在使用自己的计算资源,包括硬件、操作系统和应用程序等。其次,云服务器是基于虚拟化技术的,它可以将大量的物理服务器资源虚拟化成一个逻辑资源池,用户可以在其中进行部署、管理和使用这些资源。因此,手机上无法直接访问云服务器中的数据库。
云服务器可以放数据库吗手机怎么放不了
2023-10-28

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录