需要在一个PDO中建立两个不同的远程MYSQL数据库连接

时间:2017-08-07 12:58:36

标签: php mysql pdo

开发多租户应用程序。我需要一个想法。因为我现在在一条没有光线的黑暗隧道中 从两个不同的位置将涉及两个数据库。

  1. 数据库(A) - 租户列表与租户数据库(B)用户名,密码,IP地址
  2. 数据库(B) - 基于数据库(A)中所选租户的特定租户信息
  3. 我想要达到的目标是:

    1. 当用户在网址中输入具有特定user_id的网址时,首先它将根据网址中的user_id查询数据库(A)中的租户列表。
    2. 然后,它将直接使用查询数据库(A)结果中的凭证与数据库(B)建立持久连接。
    3. 希望得到想法并给我一些启发。谢谢!

      这是我尝试过的:

       public function func_get_user($id){
          $tenant = $this->client_info_func($id); // this is function to get Tenant credential from Database A for using in database B
      
          if (!empty($tenant)) {
              $pdo_client = $this->cliend_db_conn($tenant['client_db_name'],$tenant['client_db_username'],$tenant['client_db_pass'],$tenant['client_db_ip']); // this is the function to initiate PDO connection to Database B
          $Q = "SELECT user_id,user_name,client_id FROM user WHERE client_id =:id";
          $R = $pdo_client->prepare($Q);
          $R->bindParam(':id', $id);
          $R->execute();
          $result = $R->fetch(PDO::FETCH_ASSOC);
          return $result;
      
          }else{
              echo 'Sorry! you are not allowed tenant';
          }
      
      
       }
      

1 个答案:

答案 0 :(得分:2)

您尚未发布任何代码。但逻辑如下:

正常使用PDO连接到数据库A:

@ManyToOne

然后在数据库A上运行此查询:

$pdo_db_A = new PDO(... ;dbname='database_A', 'db_A_username', 'db_A_password');

使用PHP变量获取数据,例如数组:

SELECT username, password FROM database_A_table WHERE user_id = ...

与数据库B建立单独的PDO连接并传递详细信息:

$db['username'] = $row['username']; // $row being from the above query
$db['password'] = $row['password'];