Bom dia a todos… hoje vou mostrar como conectar no banco de dados firebird usando PHP.
em alguns passos você podera conectar no firebird.
1° Passo – Instale o servidor do firebird
acesse o site http://www.firebirdsql.org/ e faça download do firebird, fiz testes usando o firebird 1.5, 2.0, e 2.5 e todos funcionaram normalmente.
Após instalar o firebird reinicie o computador.
2° Passo – O segundo passo é configurar o PHP. A biblioteca para conexão com o firebird
Localize o arquivo php.ini dentro do diretório de instalação do servidor web (apache), e em seguida abra usando um editor de texto(notepad, edit plus…).
Encontre a linha ;extension=php_interbase.dll e remova o ponto e vírgula no inicio, salve, feche e reinicie o serviço do servidor web.
Caso não encontre a linha, insira no final do arquivo.
3° Passo – Criar a conexão com o FireBird
//ibase_connect — Abre uma conexão com um banco de dados InterBase //pode ser colocado o IP, ou nome do computador onde esta o banco de dados $servidor = '127.0.0.1:C:/diretorio/banco.FDB'; //conexão com o banco, se der erro mostrara uma mensagem. if (!($dbh=ibase_connect($servidor, 'SYSDBA', 'masterkey'))) die('Erro ao conectar: ' . ibase_errmsg());
Fazer uma consulta no banco.
//Instruções SQL $sql = 'SELECT COLUNA1, COLUNA2 FROM TABELA'; //Executa a instrução SQL $query= ibase_query ($dbh, $sql); //gera um loop com as linhas encontradas while ($row = ibase_fetch_object ($query)) { //imprimi as linhas na tela echo $row->COLUNA1 . "n"; } //Libera a memoria usada ibase_free_result($query); //fecha conexão com o firebird ibase_close($dbh);
Um erro muito comum ao tentar fazer a conexão com o firebird é a seguinte mensagem de erro;
“Warning: ibase_connect() [function.ibase-connect]: Unable to complete network request to host “127.0.0.1”. Failed to locate host machine. The specified name was not found in the hosts file or Domain Name Services.”
Para resolver é bem simples, basta inserir 2 linhas no arquivo de configuração de serviços.
Vá ate o diretorio C:WindowsSystem32driversetc e abra o arquivo services, insira no final do arquivo as seguintes linhas
gds_db 3050/tcp #firebird Database gds_db 3050/udp #firebird Database
Pronto sua conexão podera ser feita com sucesso.
Para saber mais sobre os comandos que podem ser usados acesse:
Prezado, o 3° Passo – Criar a conexão com o FireBird, vc não passa os detalhes onde colocar os códigos. Poderia detalhar mais estas informações.
Os comandos de conexão você precisa colocar em um arquivo (.php).
Já tentei, mas todo o código que coloco na página, não surte efeito.
Pode passar um exemplo, parece que está faltando algo no código.
Pode me passar os arquivos php, para uma conexão com o firebird, com uma consulta e a tela de resultado para que eu possa entender melhor.
Já fiz várias buscas mas não encontro um tutorial completo.
Grato
Nill, O próprio exemplo acima já faz a conexão e exibe os resultados em tela.
Não deu certo. O PHP não está reconhecendo a função IBASE_CONNECT.
O que posso fazer?
Ivo, faça um teste utilizando a função demonstrada abaixo, para checar se a função está habilitada.
Caso apresente como função não encontrada, verifique os passos 1 e 2, não esqueça de reiniciar o computador após a instalação e configuração do Firebird.
\n”;
} else {
echo “ibase_connect – Função não encontrada
\n”;
}
?>
Obrigado
boa noite estou tendo este erro na consulta
a conexao é feita nomalmete mas a consuta dá este erro
Undefined property: stdClass::
Faça um teste utilizando a função demonstrada abaixo, para checar se a função está habilitada.
Caso apresente como função não encontrada, verifique os passos 1 e 2, não esqueça de reiniciar o computador após a instalação e configuração do Firebird.
< ?php if (function_exists('ibase_connect')) { echo "ibase_connect - Função encontrada. \n”; } else { echo “ibase_connect – Função não encontrada \n”; } ?>
( ! ) Fatal error: Call to undefined function ibase_connect() in C:\wamp\www\Teste\index.php on line 5
Call Stack
# Time Memory Function Location
1 0.0000 243672 {main}( ) ..\index.php:0
#5 – if (!($dbh = ibase_connect($servidor, ‘SYSDBA’, ‘masterkey’)))
???
Igor, no erro está informando que não encontrou a função de conexão.
Faça um teste utilizando a função demonstrada abaixo, para checar se a função está habilitada.
Caso apresente como função não encontrada, verifique os passos 1 e 2, não esqueça de reiniciar o computador após a instalação e configuração do Firebird.
< ?php if (function_exists('ibase_connect')) { echo "ibase_connect - Função encontrada. \n”; } else { echo “ibase_connect – Função não encontrada \n”; } ?>
Boa noite Caro.
Estou tentando fazer uma consulta à um banco fdb mas tb não obtive êxito. Segue o erro
Fatal error: Call to undefined function ibase_query() in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\firebird\teste.php on line 9
Arquivo teste.php
COLUNA1 . “n”;
}
//Libera a memoria usada
ibase_free_result($query);
//fecha conexão com o firebird
ibase_close($dbh);
?>
André, este erro “Fatal error: Call to undefined function ibase_query()” indica que não foi encontrada a função ibase.
Faça um teste utilizando a função demonstrada abaixo, para checar se a função está habilitada.
Caso apresente como função não encontrada, verifique os passos 1 e 2, não esqueça de reiniciar o computador após a instalação e configuração do Firebird.
< ?php if (function_exists('ibase_connect')) { echo "ibase_connect - Função encontrada. \n”; } else { echo “ibase_connect – Função não encontrada \n”; } ?>
Um outro detalhe também importante se tiver usando WAMP, EASYPHP entre outros aplicativos que instalam o pacote (PHP, MYSQL, APACHE), é verificar a versão de instalação, recomendo que utilize a versão 32bits, mesmo nos sistemas operacionais 64bits.
Alguém para me ajudar aqui neste erro “ibase_num_rows”, fazendo um favor.
Call to undefined function ibase_num_rows()
Pegando a ideia de usar o bd firebird com php. Fiz a parte de listar o registro do cliente, somente ao digitar na busca.
$conexao = ibase_connect(“127.0.0.1:C:/sistema/bd.fdb”,”SYSDBA”,”masterkey”);
$busca = $_POST[‘busca’];
$query = ibase_query($conexao , “select * from tbClientes where nomeCliente LIKE ‘%$busca%'”);
$num = ibase_num_rows($query);
if($num >0){
while($row = ibase_fetch_assoc($query)){
echo $row[‘nomeCliente’].’ – ‘.$row[‘cpfCliente’];
}
}else{
echo “Cliente não encontrado!”;
}
Olá Nilson bom dia,
Este erro “Fatal error: Call to undefined function ibase_query()” indica que não foi encontrada a função ibase.
Faça um teste utilizando a função demonstrada abaixo, para checar se a função está habilitada.
< ?php if (function_exists('ibase_connect')) { echo "ibase_connect - Função encontrada. \n”; } else { echo “ibase_connect – Função não encontrada \n”; } ?>
Caso apresente como função não encontrada, verifique os passos 1 e 2, não esqueça de reiniciar o computador após a instalação e configuração do Firebird.
Já tenho a listagem funcionando corretamente. O que preciso é listar somente o que for digitado, porque o BD tem mais ou menos 15.000 registros
Gostaria de usar somente a pesquisa. Mas está função pelo que me informaram ela não existe. Preciso de um código pra trazer o registro conforme é digitado o nome do cliente.
Olá Nilton,
Vou te enviar alguns links oficiais, onde você pode consultar alguns exemplos com parâmetros.
https://www.php.net/manual/pt_BR/ref.ibase.php
https://www.php.net/manual/pt_BR/function.ibase-execute.php
https://www.php.net/manual/pt_BR/function.ibase-query.php
https://www.php.net/manual/pt_BR/function.ibase-fetch-row.php
https://www.php.net/manual/pt_BR/function.ibase-fetch-object.php