Conexão com dois bancos de dados mysql

1. Conexão com dois bancos de dados mysql

ROGERIO SILVA
rogeriossilva1

(usa Outra)

Enviado em 21/01/2015 - 21:05h

Boa noite, como posso fazer uma conexão com dois bancos de dados mysql, utilizando PDO e OPP?

class Conn {
private static $Host = HOST;
private static $User = USER;
private static $Pass = PASS;
private static $Db = DB;


/* @var PDO */
private static $Connect = null;

private static function Conectar(){
try{
if(self::$Connect == null):
$dsn = 'mysql:host='.self::$Host.';dbname='.self::$Db;
$options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'];
self::$Connect = new PDO($dsn, self::$User, self::$Pass, $options);
endif;
} catch (PDOException $e) {
PHPErro($e->getCode(), $e->getMessage(), $e->getFile(), $e->getLine());
die;
}

self::$Connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return self::$Connect;
}

public static function getConn() {
return self::Conectar();
}
}



  


2. sugestão

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 22/01/2015 - 09:35h

Experimentou passar o banco como parâmetro? É o que eu faço, comigo funciona sem problema.

Minha framework é diferente da tua, então seria algo do tipo:

private static $Host_1 = HOST;
private static $User_1 = USER;
private static $Pass_1 = PASS;
private static $Db_1 = DB;

private static $Host_2 = (...) ;
private static $User_2 = (...) ;
private static $Pass_2 = (...) ;
private static $Db_2 = (...) ;

/* @var PDO */
private static $Connect = null;

private static function Conectar(banco){
try{
if(self::$Connect == null): // cuidado que, se for mudar de banco, você não pode ter $Connect definida *****
if ($banco = 'banco1) {
$dsn = 'mysql:host='.self::$Host_1.';dbname='.self::$Db_1;
$options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'];
self::$Connect = new PDO($dsn, self::$User_1, self::$Pass_1, $options);
} else {
$dsn = 'mysql:host='.self::$Host_2.';dbname='.self::$Db_2;
$options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'];
self::$Connect = new PDO($dsn, self::$User_2, self::$Pass_2, $options);
}
endif;
} catch (PDOException $e) {
PHPErro($e->getCode(), $e->getMessage(), $e->getFile(), $e->getLine());
die;
}

self::$Connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return self::$Connect;
}

public static function getConn(banco) { // verificar esta parte
return self::Conectar(banco);
}


3. Re: Conexão com dois bancos de dados mysql

ROGERIO SILVA
rogeriossilva1

(usa Outra)

Enviado em 12/02/2015 - 11:31h


Entendi, mas a segunda conexão seria algo "dinâmico", por exemplo

A segunda conexão seria assim

- Alguem loga, eu vejo quem logou e dou um include no dir dele.
Dentro deste diretorio teria o segundo arquivo com os dados desta segunda conexao.



4. Classes

Spencer Ekroth
spencer

(usa FreeBSD)

Enviado em 13/02/2015 - 14:11h


Sei que vc vai conseguir isso mas não poderá usar a mesma classe, ou seja tem que alinha a resposta do banco para nunca usar a mesma classe, assim vai escalonando as tabelas de forma distinta! espero que a explicação sirva!

tenho um exemplo em PHP

exemplo 1

<?php print(" &nbsp; suas tabelas <br>"); ?>
<link rel = "stylesheet" href="GraphicsStyles.css" >

<?php
require ("Process.php"); //
$p = new Process();
require ("Table.php");
$table = new Table ( $p-> RecoverHeader("Select * from seubanco") ,$p-> RecoverInfos("Select * from seubanco"));
$table ->setLink("favicon.ico");
$table ->mount();
?>
<br>::Fim do Registro:: <HR>
<?php
$link = mysql_connect("endereçoIP", "usuario", "senha");
mysql_select_db("Banco", $link);
$result = mysql_query("SELECT * FROM suatabela", $link);
$num_rows = mysql_num_rows($result); // vai retornar um numero de registros
echo "$num_rows Registro(s)\n"; // exibe o resultado
?>

EXEMPLO 2
<?php $link = mysql_connect('endereçoIPt', 'usuario', 'senha'); // Aqui vc coloca o banco e a tabela
$fields = mysql_list_fields("seubanco", "suatabela", "campo1,"campo2", "campo...", "$link);
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++) {
echo mysql_field_name($fields, $i) . "\n: &nbsp;&nbsp; \n";
}
?>

<?php
$link = mysql_connect("endereçoIP", "usuario", "senha");
mysql_select_db("Banco", $link);
$result = mysql_query("SELECT * FROM suatabela", $link);
$num_rows = mysql_num_rows($result); // vai retornar um numero de registros
echo "$num_rows Registro(s)\n"; // exibe o resultado
?>
bem simples né?







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts