Jump to content
junior_vieira

Consultar em um banco Firebird e inserir ou atualizar em Mysql

Recommended Posts

Bom dia pessoal.

Tenho um sistema ERP rodando localmente utilizando firebird e gostaria de fazer algumas tabelas atualizarem no meu site.
Então a missão seria fazer um cron consultando a base (firebird) e atualizar o Mysql que esta no outro servidor.

O PHP para consultar a tabela do GDB já esta funcionando, agora como conectar ao outro SQL e fazer ele comparar que não estou conseguindo acompanhar a lógica.

<?php
header("Content-Type: text/html;  charset=ISO-8859-1",true);

//conexão Firebird
//início da conexão
$db = 'localhost:/var/lib/firebird/2.5/data.FDB';
$user = 'SYSDBA'; /* este é o usuário padrão do Firebird */
$password = 'masterkey'; /* esta senha também é padrão */
$res = ibase_connect($db,$user,$password) or die("<br>" . ibase_errmsg());

// Query
$sql = "SELECT * FROM produtos order by IDPRODUTO desc";

$result = ibase_query($res,$sql) or die(ibase_errmsg()); /* enviando a query ao banco  */
while($row=ibase_fetch_object($result)){
// use $row-> not $row->fieldname
echo $row->IDPRODUTO.  " - ". $row->DESCRICAO.  " - ". $row->PRECOVENDA. "<br>" ;
}

ibase_free_result($result);
// Closing
ibase_close($res) or die("<br>" . ibase_errmsg());

?>

Então fiz as conexões

//conexão Firebird
//início da conexão
$db1 = 'localhost:/var/lib/firebird/2.5/data.FDB';
$user1 = 'SYSDBA'; /* este é o usuário padrão do Firebird */
$password1 = 'masterkey'; /* esta senha também é padrão */
$res1 = ibase_connect($db1,$user1,$password1) or die("<br>" . ibase_errmsg());

//Conexão site 
$db2 = 'loja2';
$user2 = 'loja2015';
$password2 = '#1234ABC'; 
$conexao2 = mysql_connect("localhost", "$user2", "$password2") or print (mysql_error()); 
mysql_select_db($db2, $res2) or print(mysql_error()); 

Mas como fazer essa query comparar por ex os campos dos dois bancos utilizando os IDs como parâmetros?

Ex verificar se houve mudança na descrição dos produtos, preços etc.

Obrigado

Júnior

 

 

 

Share this post


Link to post
Share on other sites

Para cada registro de um banco, você precisará consultar o outro e verificar se houve mudanças. É basicamente um SELECT no Firebird pra buscar os registros e, para cada registro, consultar o MySQL e ver se há dados diferentes.

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Chester1
      oi, eu to tentando mexer com servidores agora no PHP e esta dando um erro muito estranho que quando eu procuro em um programa que acha erros de sintaxe ele me diz que o erro esta no </HTML>    se alguem puder me dizer qual foi o erro que eu cometi eu agradeceria
       

       
      <HTML> <HEAD><TITLE>incluindo no banco de dados</TITLE></HEAD> <body> <BODY bgcolor="#d0d0d0"> <center> <h3>Lanchonete coma bem (voltada para o internauta)</h3> <h1>24horas</h1> <?php $login_digitado=$_POST['login']; $senha=$_POST['senha']; $nome=$_POST['nome']; $email=$_POST['email']; $telefone=$_POST['telefone']; $celular=$_POST['celular']; $endereco=$_POST['endereco']; $complemento=$_POST['complemento']; if ($login_digitado == "" || $senha == "" || $nome =="" || $email == "" || $telefone == "" || $endereco == "" || $complemento == "") { echo "existem(m) campos(s) de preenchimento obrigatorio em branco,<BR> infelizmente tera que voltar para preenche-lo(s)."; echo "<BR><a href=\"cadastro.php\">clique aqui para tentar novamente</a>"; } else { { $link=mysql_connect("localhost", "root", "") or die ("<h1>nao foi possivel conectar !!!</h1> ".mysql_error());  
      obs :estou trabalhando com formularios e servidores
         
         
         
         
      ?>
      </BODY>
      </HTML>
    • By rainbowily
      Sou nova em sql e estou com duvida em como fazer uma consulta:
      Eu tenho uma tabela de produto(id, descricao), cor(id, nome) e produto_cor(id, id_produto, id_cor). Preciso descobrir se tem algum produto que tenhas as cores (1,2,3) respectivamente para não deixar cadastrar outro produto. Alguém poderia me ajudar? Obrigada



    • By DavidPin94
      Boa tarde, estou tentando criar uma validação para saber se o usuário já está cadastrado no meu banco de dados para meu sistema ficar mais organizado, porém quando realizo o teste cadastrando um usuário já cadastrado, o cadastro ocorre sendo que não era para ocorrer
      <?php require_once("conexao.php");?> <?php if (isset($_POST['usuario'])) { $nome = utf8_decode($_POST['usuario']); $senha = utf8_decode($_POST['senha']); $inserir = "INSERT INTO cadastro "; $inserir .= "(usuario, senha) "; $inserir .= "VALUES "; $inserir .= "('$nome', '$senha')"; $query = "SELECT usuario FROM cadastro WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); $query = "SELECT usuario FROM clientes WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); if (mysqli_num_rows($consulta) < 1) { $operacao_inserir = mysqli_query($conecta, $inserir); if (! $operacao_inserir) { die("Erro no banco"); }else header("location: login.php"); }else{ die("Usuário existente!"); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Cadastrar novo usuário</title> <link rel="stylesheet" type="text/css" href="estilo.css"> </head> <body> <nav> <ul> <li><a href="inicial.php">PÁGINA INICIAL</a></li> <li><a href="quem_somos.php">QUEM SOMOS</a></li> </ul> </nav> <div id="cadastro"> <form method="post" action="cadastro.php"> <label>Digite seu nome de usuário</label> <input type="text" name="usuario" placeholder="Ex: Usuario123" required size="50" minlength="5" maxlength="20" autofocus><br> <label>Digite sua senha</label> <input type="password" name="senha" placeholder="Deve conter mais de 5 caracteres" required size="50" minlength="5" maxlength="20" autofocus><br> <input type="submit" value="Cadastrar" id="enviar" name="enviar"> </form> </div> </body> </html> ,  alguém poderia me ajudar?  Meu código:
    • By thunanchiu@hotmail,com
      Bom dia, gostaria dessa ajuda.
      Tenho uma tabela de "INSCRIÇÃO" onde a mesma possui 2 chaves estrangeiras (CAND_SQ e CANDPL_SQ). Ambas as chaves estrangeiras possuem um campo CPF.
      Gostaria de saber como eu trago os cpfs que são iguais dentro da inscrição.
      Ou seja, atualmente tenho uma INSCRIÇÃO onde pode ser feita de duas maneiras diferentes. Inscrição Regular e Inscrição Atraso. Quando eu for fazer a Inscrição Atraso, caso eu já tenha feito a Inscrição Regular não poderei fazer a Inscrição Atraso.
    • By Sapinn
      Salve salve! Nuca intendi como isso realmente funciona por isso gostaria da ajuda de vcs. Estou desenvolvendo um sistema de historias e acho que seria interessante no envio dessas historia além dos texto imagem ilustrativas, mais ou menos como blogs de noticias fazem, mas como posso enviar texto e imagem e depois retorna-los juntos? Eu sei com enviar imagens em php mas gostaria de enviar a imagem e o texto colocando ambos em um textarea acho que assim ficaria bem mais interessante alguém pode me ajuda?
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.