Multipla Conexao com o banco usando PDO

Enviada por Wellington de araujo ferreira 
Wellington de araujo ferreira
Multipla Conexao com o banco usando PDO
22 de July de 2016 às 10:33PM
Boa noite amigos,
Estou enfrentando um problema que ainda não consegui resolver, preciso da ajuda de vocês para resolvê-lo.
Preciso conectar e bancos diferentes na minha aplicação, banco1, banco2, banco2, com host, usuários, senhas e portas diferentes. Tenho uma classe chamada conexão que uso a bastante tempo e que gostaria de modifica-la para esta tarefa, mas não estou sabendo como fazer. a Classe é esta aí em baixo.

<?php

class Conexao {
//atributo estatico e privado
private static $con;
private static $erro;

/**
* Efetua uma conexao com o banco de dados mysql
* @return PDO
*/
public static function getConnection() {
if (!self::$con) {
self::open();
}
return self::$con;
}

public static function getError() {
return self::$erro;
}

private static function open() {

$host = DB_HOST;
$port = DB_PORT;
$dbName = DB_NAME;
$userName = DB_USER;
$pass = DB_PASSWD;

try {
self::$con = new PDO("mysql:host={$host}; port={$port}; dbname={$dbName}", $userName, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
self::$erro = FALSE;
} catch (PDOException $ex) {
stop($ex);
}

}

}

******************************
Bom eu gostaria de passar um objeto do tipo dados_conexao para a classe conexao e ela realizasse a conexao para mim
Exemplo:

class DaoTable implements InterfaceDao {

private $conexao;
private $msg;

function __construct() {
$objCon = new ObjetoConexao();
$objCon->setHost("172.0.0.1");
$objCon->setPort("3306");
$objCon->setDbName("nomedobanco");
$objCon->setUser("usuario");
$objCon->setPasswd("senha");

$this->conexao = Conexao::getConnection($objCon);
}

public function inserir($objeto){

}

Preciso da ajuda de vocês, porque fiz várias tentativas mas todas foram mal sucedidas.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.