zoukankan      html  css  js  c++  java
  • thinkphp 切换数据库

    除了在预先定义数据库连接和实例化的时候指定数据库连接外,我们还可以在模型操作过程中动态的切换数据库,支持切换到相同和不同的数据库类型。用法很简单, 只需要调用Model类的db方法,用法:

    常州大理石平台

    Model->db("数据库编号","数据库配置");

    数据库编号用数字格式,对于已经调用过的数据库连接,是不需要再传入数据库连接信息的,系统会自动记录。对于默认的数据库连接,内部的数据库编号是0,因此为了避免冲突,请不要再次定义数据库编号为0的数据库配置。

    数据库配置的定义方式和模型定义connection属性一样,支持数组、字符串以及调用配置参数三种格式。

    Db方法调用后返回当前的模型实例,直接可以继续进行模型的其他操作,所以该方法可以在查询的过程中动态切换,例如:

    1. $this->db(1,"mysql://root:123456@localhost:3306/test")->query("查询SQL");

    该方法添加了一个编号为1的数据库连接,并自动切换到当前的数据库连接。

    当第二次切换到相同的数据库的时候,就不需要传入数据库连接信息了,可以直接使用:

    1. $this->db(1)->query("查询SQL");

    如果需要切换到默认的数据库连接,只需要调用:

    1. $this->db(0);

    如果我们已经在项目配置中定义了其他的数据库连接信息,例如:

    1. //数据库配置1
    2. 'DB_CONFIG1' = array(
    3. 'db_type' => 'mysql',
    4. 'db_user' => 'root',
    5. 'db_pwd' => '1234',
    6. 'db_host' => 'localhost',
    7. 'db_port' => '3306',
    8. 'db_name' => 'thinkphp'
    9. ),
    10. //数据库配置2
    11. 'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp';

    我们就可以直接在db方法中调用配置进行连接了:

    1. $this->db(1,"DB_CONFIG1")->query("查询SQL");
    2. $this->db(2,"DB_CONFIG2")->query("查询SQL");

    如果切换数据库之后,数据表和当前不一致的话,可以使用table方法指定要操作的数据表:

    1. $this->db(1)->table("top_user")->find();
     
  • 相关阅读:
    【测试技术】ant在测试中的使用@文件以及目录的读写删和复制
    【测试环境】java|jdk|ant
    【测试理论】入行7年,一点感悟
    home_work picture
    linux shell awk 语法
    linux shell 指令 诸如-d, -f, -e之类的判断表达式
    软件测试工作这两年来,我丢失了什么?(一)
    软件测试工作近两年来的感想和未来规划(一)
    用Python进行SQLite数据库操作
    python selenium xpath定位时使用变量
  • 原文地址:https://www.cnblogs.com/furuihua/p/11792387.html
Copyright © 2011-2022 走看看