tiagofontoura Postado Janeiro 27, 2009 Denunciar Share Postado Janeiro 27, 2009 (editado) [RESOLVIDO] ola amigos, estou precisando conectar via php em dois bancos mysql, pois preciso de dados das duas bases, alguém teria como me ajudar?> já tentei criar 2 arquivos "conexao.php" e chamar via include, porem o php conecta em apenas 1(a ultima a ser relacionada).> tentei tambem criar 2 conexoes dentro do mesmo arquivo "conexao.php", porem dai não conecta em nada.alguém teria uma luz?muito obrigado. Editado Janeiro 29, 2009 por tiagofontoura Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 27, 2009 Denunciar Share Postado Janeiro 27, 2009 Na própria página do mysql_connect tem isso...If you are trying to open multiple, separate MySQL connections with the same MySQL user, password, and hostname, you must set $new_link = TRUE to prevent mysql_connect from using an existing connection.For example, you are opening two separate connections to two different databases (but on the same host, and with the same user and password):$db1 = mysql_connect($dbhost, $dbuser, $dbpass);$rv = mysql_select_db($dbname1, $db1);$db2 = mysql_connect($dbhost, $dbuser, $dbpass);$rv = mysql_select_db($dbname2, $db2);At this point, both $db1 and $db2 will have selected the database named by $dbname2.The workaround is to require that the second MySQL connection is new:$db1 = mysql_connect($dbhost, $dbuser, $dbpass);$rv = mysql_select_db($dbname1, $db1);$db2 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE);$rv = mysql_select_db($dbname2, $db2);Now, $db1 should have selected $dbname1, and $db2 should have selected $dbname2.This has been documented on the mysql_select_db page as well.Note: This occurs only when the server, username, and password parameters are identical for each mysql_connect statement.No caso você tem que especificar no mysql_query que link de conexão vai usar, ou seja...mysql_query("insert/update/delete..........",$db1); Ou mysql_query("insert/update/delete..........",$db2); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tiagofontoura Postado Janeiro 28, 2009 Autor Denunciar Share Postado Janeiro 28, 2009 ola amigos, estou precisando conectar via php em dois bancos mysql, pois preciso de dados das duas bases, alguém teria como me ajudar?> já tentei criar 2 arquivos "conexao.php" e chamar via include, porem o php conecta em apenas 1(a ultima a ser relacionada).> tentei tambem criar 2 conexoes dentro do mesmo arquivo "conexao.php", porem dai não conecta em nada.alguém teria uma luz?muito obrigado. já fiz desta forma, e deu certo:conexao.php$db1 = mysql_connect($dbhost, $dbuser, $dbpass);$rv = mysql_select_db($dbname1, $db1);$db2 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE);$rv = mysql_select_db($dbname2, $db2);mysql_query("insert/update/delete..........",$db1);porem, se for assim, não funciona:$sql_1 = "insert/update/delete..........",$db1);$exec_sql_1 = mysql_query($sql_1,$conexao); OU $exec_sql_1 = mysql_query($sql_1,$conexao,$db1);alguém poderia me ajudar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 28, 2009 Denunciar Share Postado Janeiro 28, 2009 tiagofontoura, só uma dúvida, havia necessidade de abrir um outro tópico para o mesmo problema que você já havia iniciado em outro? Acho que não né? Estou fundindo os dois e espero que você mantenha a discussão apenas nesse, quando ao seu problema, acabei de testar e funciona 100%, vou repassar um exemplo todo mastigado, a única coisa que você tem que alterar são as informações de conexão e os dados das tabelas, mas o exemplo é totalmente funcional.<?php $servidor = "localhost";//Geralmente é localhost mesmo $nome_usuario = "root";//Nome do usuário do mysql $senha_usuario = ""; //Senha do usuário do mysql $nome_do_banco = "luciana"; //Nome do banco de dados $conecta1 = mysql_connect("$servidor", "$nome_usuario", "$senha_usuario", TRUE) or die (mysql_error()); $banco1 = mysql_select_db("$nome_do_banco",$conecta1) or die (mysql_error()); $servidor = "localhost";//Geralmente é localhost mesmo $nome_usuario = "root";//Nome do usuário do mysql $senha_usuario = ""; //Senha do usuário do mysql $nome_do_banco = "tst"; //Nome do banco de dados $conecta2 = mysql_connect("$servidor", "$nome_usuario", "$senha_usuario", TRUE) or die (mysql_error()); $banco2 = mysql_select_db("$nome_do_banco",$conecta2) or die (mysql_error()); $sql2 = mysql_query("SELECT * FROM uf",$conecta2); while($monta2 = mysql_fetch_assoc($sql2)){ echo $monta2['Nome'].'<br>'; } echo '<hr>'; $sql1 = mysql_query("SELECT * FROM produtos",$conecta1)OR DIE(mysql_error()); while($monta1 = mysql_fetch_assoc($sql1)){ echo $monta1['produto'].'<br>'; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tiagofontoura Postado Janeiro 28, 2009 Autor Denunciar Share Postado Janeiro 28, 2009 (editado) desculpe ter aberto um novo tópico, mas acho q voce não entendeu minha duvida.se eu executar direto a query ela funciona perfeito(como no seu exemplo), mas se eu monto da seguinte forma:$sql = "SELECT * FROM tabela";$exec_sql = mysql_query($sql,$conexao); (o arquvo 'conexao.php' e onde estao os dados do banco e chamo via include).desta forma não consegui fazer as 2 conexoes. testei tambem da seguinte forma:$exec_sql = mysql_query($sql,$conexao,$conexao); mas tambem não funcionou.teria alguma ideia? Editado Janeiro 28, 2009 por tiagofontoura Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 28, 2009 Denunciar Share Postado Janeiro 28, 2009 Primeiramente você deveria consultar sempre o manual, pois nele está o seguinte:resource mysql_query ( string $query [, resource $link_identifier ] )Ou seja, mysql_query só permite dois argumentos e não três como você também tentou.Quanto a sua questão, apesar de saber que funcionaria, testei e funcionou perfeitamente colocando a query fora e só chamando ela por uma variável:<?php $servidor = "localhost";//Geralmente é localhost mesmo $nome_usuario = "root";//Nome do usuário do mysql $senha_usuario = ""; //Senha do usuário do mysql $nome_do_banco = "luciana"; //Nome do banco de dados $conecta1 = mysql_connect("$servidor", "$nome_usuario", "$senha_usuario", TRUE) or die (mysql_error()); $banco1 = mysql_select_db("$nome_do_banco",$conecta1) or die (mysql_error()); $servidor = "localhost";//Geralmente é localhost mesmo $nome_usuario = "root";//Nome do usuário do mysql $senha_usuario = ""; //Senha do usuário do mysql $nome_do_banco = "tst"; //Nome do banco de dados $conecta2 = mysql_connect("$servidor", "$nome_usuario", "$senha_usuario", TRUE) or die (mysql_error()); $banco2 = mysql_select_db("$nome_do_banco",$conecta2) or die (mysql_error()); $query2 = 'SELECT * FROM uf'; $sql2 = mysql_query($query2,$conecta2); while($monta2 = mysql_fetch_assoc($sql2)){ echo $monta2['Nome'].'<br>'; } echo '<hr>'; $query1 = 'SELECT * FROM produtos'; $sql1 = mysql_query($query1,$conecta1)OR DIE(mysql_error()); while($monta1 = mysql_fetch_assoc($sql1)){ echo $monta1['produto'].'<br>'; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tiagofontoura Postado Janeiro 29, 2009 Autor Denunciar Share Postado Janeiro 29, 2009 muito obrigado pela ajuda, finalmente deu certo, desculpe qualquer transtorno. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rafaelleggiero Postado Dezembro 8, 2015 Denunciar Share Postado Dezembro 8, 2015 Primeiramente você deveria consultar sempre o manual, pois nele está o seguinte:resource mysql_query ( string $query [, resource $link_identifier ] ) Ou seja, mysql_query só permite dois argumentos e não três como você também tentou. Quanto a sua questão, apesar de saber que funcionaria, testei e funcionou perfeitamente colocando a query fora e só chamando ela por uma variável: <?php $servidor = "localhost";//Geralmente é localhost mesmo $nome_usuario = "root";//Nome do usuário do mysql $senha_usuario = ""; //Senha do usuário do mysql $nome_do_banco = "luciana"; //Nome do banco de dados $conecta1 = mysql_connect("$servidor", "$nome_usuario", "$senha_usuario", TRUE) or die (mysql_error()); $banco1 = mysql_select_db("$nome_do_banco",$conecta1) or die (mysql_error()); $servidor = "localhost";//Geralmente é localhost mesmo $nome_usuario = "root";//Nome do usuário do mysql $senha_usuario = ""; //Senha do usuário do mysql $nome_do_banco = "tst"; //Nome do banco de dados $conecta2 = mysql_connect("$servidor", "$nome_usuario", "$senha_usuario", TRUE) or die (mysql_error()); $banco2 = mysql_select_db("$nome_do_banco",$conecta2) or die (mysql_error()); $query2 = 'SELECT * FROM uf'; $sql2 = mysql_query($query2,$conecta2); while($monta2 = mysql_fetch_assoc($sql2)){ echo $monta2['Nome'].'<br>'; } echo '<hr>'; $query1 = 'SELECT * FROM produtos'; $sql1 = mysql_query($query1,$conecta1)OR DIE(mysql_error()); while($monta1 = mysql_fetch_assoc($sql1)){ echo $monta1['produto'].'<br>'; } ?> Bom dia ESerra,Atualmente estou estagiando em uma empresa e me deparei com este mesmo problema,pois bem consegui resolver da forma totalmente mastigada que você deixou a disposição. Fiz questão de vir agradecer, Muito Obrigado ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
tiagofontoura
[RESOLVIDO] ola amigos, estou precisando conectar via php em dois bancos mysql, pois preciso de dados das duas bases, alguém teria como me ajudar?
> já tentei criar 2 arquivos "conexao.php" e chamar via include, porem o php conecta em apenas 1(a ultima a ser relacionada).
> tentei tambem criar 2 conexoes dentro do mesmo arquivo "conexao.php", porem dai não conecta em nada.
alguém teria uma luz?
muito obrigado.
Editado por tiagofontouraLink para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.