Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal acabei de me registrar aqui no forum estou a procura de ajudas com projetos, sou novato em php, estou criando um conversor de banco de dados firebird em php, gostaria de ajuda não sei como fazer isso sei somente comandos
basicos em sql, tipo **update produtos set campo1=campo2** séria basicamente isso mais onde entro com o banco nesse caso? Pois faria dessa foma a copia de dados de uma tabela para outra.
<?php
//origem
$hostname = 'localhost:C:\converter\origem\ORIGEM.GDB';
$username = 'sysdba';
$password = 'masterkey';
$origem = ibase_connect($hostname, $username, $password)or die("<br>" . ibase_errmsg());
//destino
$hostname = 'localhost:C:\converter\destino\DESTINO.FDB';
$username = 'sysdba';
$password = 'masterkey';
$destino = ibase_connect($hostname, $username, $password)or die("<br>" . ibase_errmsg());
?>
a conexao com os bancos ja esta ok
Crio um botão exemplo converte cliente ao clicar nesse botão vai converter somente cliente outro cidades etc..
No sql informo qual campo recebe oque lembrando que os dois bancos são totalmente diferentes e em estrutura, sei que vai um tempo meu para ver qual campo e qual só preciso de um ponta pé inicial
Tambem gostaria de por um .gif dizendo que o processo foi inicia e um contador de registro dizendo quantos registros foram copiados e por fim um (ok) quanto termina o processo de conversão ao lado do botão.
>
da um exemplo da tabela....
se for fazer uma copia da tabela usa select into..... ai você tem q ver o mecanismo de consultas em databases diferentes.
Desculpa minha ignorância no assunto mais como disse sou iniciante nessa pratica não entendi o que você quis dizer poderia dar um exemplo
BANCO DESTINO
Update TLCLIENTES set CODCLI = ( Banco origem CLIENTES COD )
Update TLCLIENTES set NOMECLI = ( Banco origem CLIENTES NOME )
Update TLCLIENTES set CPFCLI = ( Banco origem CLIENTES CPF )
Mais ou menos isso que gostaria de fazer
se a consulta em bases diferentes for simples, você usa assim
noma_da_base.tabela.campo;
Update destino.TLCLIENTES set destino.CODCLI = ( origem.tclientes.campo)Isto é para aprendizado ou uma necessidade mesmo?
Pelo meu conhecimento, tecnicamente isto não é necessário.
>
Isto é para aprendizado ou uma necessidade mesmo?
Pelo meu conhecimento, tecnicamente isto não é necessário.
Pra mim isso é uma aprendizagem é que eu encasquetei nisso vejo o pessoal fazer e delphi e C# gostaria fazer em php se for possível mais vejo que é.
Não se trata de trabalho mais de aprendizagem mesmo pois sou suporte de sistemas e trabalho em uma empresa que os programadores criam esses conversores de um sistema para outro, por isso só quero ver até onde vai o poder do php.
>
se a consulta em bases diferentes for simples, você usa assim
noma_da_base.tabela.campo;
Update destino.TLCLIENTES set destino.CODCLI = ( origem.clientes.campo) AND destino.NOMECLI = ( origem.clientes.nome)
Nesse caso amigo como disse sou iniciante ficaria assim fiquei um pouco perdido onde encaixo o codigo
<?php
//origem
$hostname = 'localhost:C:\converter\origem\ORIGEM.GDB';
$username = 'sysdba';
$password = 'masterkey';
$origem = ibase_connect($hostname, $username, $password)or die("<br>" . ibase_errmsg());
//destino
$hostname = 'localhost:C:\converter\destino\DESTINO.FDB';
$username = 'sysdba';
$password = 'masterkey';
$destino = ibase_connect($hostname, $username, $password)or die("<br>" . ibase_errmsg());
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Documento sem título</title>
</head>
<body><?php "
origem.CLIENTES.COD;
Update destino.TLCLIENTES set destino.CODCLI = ( origem.tclientes.COD) and"
?>">
<input type="submit" name="Clientes" id="Clientes" value="Clientes">
</form>
</body>
</html>
isso
o jeito mais simples é você fazer assim
1 - pega a(s) linha(s) q você deseja gravar/atualizar no banco de origem e armazena o resultado em um array.
2 - agora passe os valores desse array para o banco de destino aqui vai usar a outra conexão.
seria mais ou menos isso.
ORIGEM
$sql = "select * from clientes where alterado = '27/02/2012";
$clientes ibase_query($db, $sql);
$alterados = array();
while($item = ibase_fetch_assoc($clientes)){
$alterados[] = $item;
}
//agora abra o banco de dados de destino.... itere o array($alterados) e formate os insert's
>
o jeito mais simples é você fazer assim
1 - pega a(s) linha(s) q você deseja gravar/atualizar no banco de origem e armazena o resultado em um array.
2 - agora passe os valores desse array para o banco de destino aqui vai usar a outra conexão.
seria mais ou menos isso.
ORIGEM
$sql = "select * from clientes where alterado = '27/02/2012";
$clientes ibase_query($db, $sql);
$alterados = array();
while($item = ibase_fetch_assoc($clientes)){
$alterados[] = $item;
}
//agora abra o banco de dados de destino.... itere o array($alterados) e formate os insert's
Perdão amigo mais não consegui te entender.
da um exemplo da tabela....
se for fazer uma copia da tabela usa select into..... ai você tem q ver o mecanismo de consultas em databases diferentes.