Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ggb

[Resolvido] Consulta a Multiplos MySqls

Recommended Posts

Boa Tarde pessoal,

 

Precisava fazer um programa em que ele consulta 2 bancos de dados diferentes,

primeiro ele faria um select no primeiro banco, caso nao esteja disponivel ele consultaria o segundo banco.

não acho em lugar nenhum para fazer isso, se alguem puder me da rum help, fico agradecido

 

 

Obrigado ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie duas conexões:

 

//----------> Conexão 1 <-------------------

$host1 = 'localhost';

$dbuser1 = 'user';

$dbpassword1 = '*****';

$dbname1 = 'seu_bd';

$conexao1 = @mysql_connect($host, $dbuser, $dbpassword, true) or die ("Não foi possível conectar-se ao servidor MySQL");

$db1 = @mysql_select_db($dbname) or die ("Não foi possível selecionar o banco de dados $dbname");

 

//----------> Conexão 2 host externo -------

$host2 = '255.255.255.255'; //ip do host externo

$dbuser2 = 'user';

$dbpassword2 = '*****';

$dbname2 = 'bd_externo';

$conexao2 = @mysql_connect($host, $dbuser, $dbpassword, true) or die ("Não foi possível conectar-se ao servidor MySQL externo");

$db2 = @mysql_select_db($dbname) or die ("Não foi possível selecionar o banco de dados externo $dbname");

//------------------------------------------

 

Repare que na segunda conexão existe um valor True no mysql_connect para que ele não sobrescreva a conexão anterior..

 

Aí é só indicar qual conexão ira utilizar no mysql_query.

Ex.: $sql = mysql_query("string",$conexao1) ou $sql = mysql_query("string",$conexao2)

 

http://www.php.net/manual/pt_BR/function.mysql-connect.php

 

 

Att

Uerlen Santos

 

"Não somos obrigados a saber tudo, porem muito que não sabemos o google consegue resolver... hehe"

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, é mais ou menos isso que eu preciso.

mas ai que tá, eu preciso que ele só de um query no banco 2 se o banco 1 falhar, me entende?

estou vendo n maneira aqui, caso consiga posto uma resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites
//----------> Conexão 1 <-------------------
$host1 = 'localhost';
$dbuser1 = 'user';
$dbpassword1 = '*****';
$dbname1 = 'seu_bd';
$conexao1 = @mysql_connect($host, $dbuser, $dbpassword, true) or die ("Não foi possível conectar-se ao servidor MySQL");
$db1 = @mysql_select_db($dbname) or die ("Não foi possível selecionar o banco de dados $dbname");

//----------> Conexão 2 host externo -------
$host2 = '255.255.255.255'; //ip do host externo
$dbuser2 = 'user';
$dbpassword2 = '*****';
$dbname2 = 'bd_externo';
$conexao2 = @mysql_connect($host, $dbuser, $dbpassword, true) or die ("Não foi possível conectar-se ao servidor MySQL externo");
$db2 = @mysql_select_db($dbname) or die ("Não foi possível selecionar o banco de dados externo $dbname");
//------------------------------------------


$sql = mysql_query("SELECT * FROM tabela where id='$_GET[id]' LIMIT 1", $conexao1);
$row = mysql_num_rows($sql);
if($row!=1){
$sql = mysql_query("SELECT * FROM tabela where id='$_GET[id]' LIMIT 1", $conexao2);
$row = mysql_num_rows($sql);
}

if($row==1){


//EXECUTA O CODIGO NORMALMENTE... mysql_fetch_array($sql);


}else{
//Registro inexistente... ERRO
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu não entendo muito bem de programação, ali você deu um select nos ids e ele só pega 1 registro do banco ?

se não houver nenhuma linha no primeiro ele vai pro segundo ?!

Obrigado pela paciencia e coperação, tem me ajudado muito assim como sou iniciante.

=D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia também testar direto se a conexão existe

 

//----------> Conexão 1 <-------------------
$host1 = 'localhost';
$dbuser1 = 'user';
$dbpassword1 = '*****';
$dbname1 = 'seu_bd';
$conexao1 = @mysql_connect($host, $dbuser, $dbpassword, true) or die ("Não foi possível conectar-se ao servidor MySQL");
$db1 = @mysql_select_db($dbname) or die ("Não foi possível selecionar o banco de dados $dbname");

if(!$conexao1){//Se a conexão1 não existir executa a conexão 2 e lá lá, aí voce faz o  que precisar

//----------> Conexão 2 host externo -------
$host2 = '255.255.255.255'; //ip do host externo
$dbuser2 = 'user';
$dbpassword2 = '*****';
$dbname2 = 'bd_externo';
$conexao2 = @mysql_connect($host, $dbuser, $dbpassword, true) or die ("Não foi possível conectar-se ao servidor MySQL externo");
$db2 = @mysql_select_db($dbname) or die ("Não foi possível selecionar o banco de dados externo $dbname");
//------------------------------------------
}else{
  //Use esse else se precisar executar algum código que dependa apenas da conexão 1
}

 

Att

Uerlen Santos

Compartilhar este post


Link para o post
Compartilhar em outros sites

//----------> Conexão 1 <-------------------
$host1 = '10.0.0.10:6000';
$dbuser1 = 'root';
$dbpassword1 = 'root';
$dbname1 = 'tf';
$conexao1 = @mysql_connect($host, $dbuser, $dbpassword, true) or die ("Não 

foi possível conectar-se ao servidor MySQL");
$db1 = @mysql_select_db($dbname) or die ("Não foi possível selecionar o 

banco de dados $dbname");

//----------> Conexão 2 host externo -------
$host2 = '10.0.0.10:6500'; //ip do host externo
$dbuser2 = 'root';
$dbpassword2 = 'root';
$dbname2 = 'tf';
$conexao2 = @mysql_connect($host, $dbuser, $dbpassword, true) or die ("Não 

foi possível conectar-se ao servidor MySQL externo");
$db2 = @mysql_select_db($dbname) or die ("Não foi possível selecionar o 

banco de dados externo $dbname");
//------------------------------------------


$sql = mysql_query("SELECT * FROM aluno where id='$_GET[num_matricula]' 

LIMIT 1", $conexao1);
$row = mysql_num_rows($sql);
if($row!=1){
$sql = mysql_query("SELECT * FROM aluno where id='$_GET[num_matricula]' 

LIMIT 1", $conexao2);
$row = mysql_num_rows($sql);
}

if($row==1){

while ($row = mysql_fetch_array($sql)){
echo $row['num_matricula']."-"$row['nome']."-"$row['matricula']."-"$row

['ano'];
echo <br/>;

//EXECUTA O CODIGO NORMALMENTE... mysql_fetch_array($sql);
}
}else{
//Registro inexistente... ERRO
}
?>

 

 

bom, segui o código do nosso amigo, mas não funcionou, podem me dizer se há algum erro no codigo ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uerlen, se segui o seu exemplo e deu certo, muito obrigado pela ajuda, sou um cara mais voltado pra redes e programação não é muito a minha praia.

 

Hinom, brigado pela dica também, se precisar fazer n conexões essa seria uma melhor alternativa

 

Muito obrigado a todos que me ajudaram.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.