SdevLab – Tutorial | Como conectar no Interbase/Firebird em PHP

Fala Galera, segue um tutorial que ensina a conectar no interbase/firebird via php.

Como conectar no Interbase/Firebird em PHP

Para começar, uma definição básica sobre a diferença entre os dois BD’s:

O Interbase é um SGBD da Borland que suporta bancos de dados maiores que 2GB. É relativamente rápido e não é muito pesado. Após a versão 6.0 do interbase, ele passou a ser proprietário e uma equipe de programadores desenvolveu o Firebird, que a princípio era para ser um banco de dados educacional, mas é  bastante utilizado no ambiente empresarial.

Como os bancos são praticamente iguais, o php tem uma lista de funções que funcionam em ambos, logo, o código que está neste post conecta tanto em um banco .gdb (extensão de um banco Interbase) quanto em um banco .fdb (extensão de um banco Firebird).

Instalando o Firebird:

  • Faça o download do banco em http://www.firebirdsql.org/ e instale (não coloquei um passo a passo da instalação porque é simples demais);
  • No seu servidor webapache, entre no arquivo php.ini (perceba que o php.ini que você deve alterar é o do apache, não confunda com outros php.ini!!!!!) e remova o ponto e vírgula (;) desta linha:
    ;
    extension = php_interbase.dll
  • Agora, vá ao Painel de Controle > Sistema > aba Avançado e clique em variáveis de ambiente;
  • No bloco Variáveis do Sistema, clique em novo e preencha os campos com os dados abaixo:
    Nome da variável: PHPRC
    Valor da variável: insira aqui o path do seu php.ini (mais uma vez vou lembrar que o caminho é o do php.ini do apache!!!!) e clique em salvar;
  • Reinicie seu servidor.

Seguindo os passos acima você tem o firebird instalado e pronto para receber acessos via php.

Agora que o banco está rodando, segue o código de conexão:


<?php
//início da conexão
$db = 'localhost:C:\Documents and Settings\usuario\pasta_do_bd\Nome_do_banco.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 Tabela";

$result = ibase_query($res,$sql) or die(ibase_errmsg()); /* enviando a query ao banco  */
while($row=ibase_fetch_object($result)){
// use $row->FIELDNAME not $row->fieldname
echo $row->FIELDNAME;
}

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

?>

Neste link (http://br.php.net/manual/pt_BR/ref.ibase.php) existe uma lista de funções para firebird/interbase, vale a pena acessar.

No caso de uma segunda chamada a ibase_connect() com os mesmos argumntos, não será criada uma nova conexão, mas ao invés, será retornado o identificador da conexão já aberta. A conexão com o servidor será fechada assim que terminar a execução do script, a menos que seja fechada explicitamente pela chamada de ibase_close().

Só para completar, existe um gerenciador de bancos para o firebird (e interbase também) chamado IB Expert, posteriormente irei publicar um artigo sobre ele, mas vale adiantar que é mais fácil ver os dados do seu banco por este gerenciador do que pelo console. Só reforçando, o programa se chama IB Expert mas serve para acessar tanto bancos do firebird quanto interbase.

Até a próxima!

sanoj
😉

4 comentários sobre “SdevLab – Tutorial | Como conectar no Interbase/Firebird em PHP

  1. Bah, bem legal, só que minha instalação do EasyPHP tá dando muito pau com essas DLL de conexão do interbase, sabe me dizer como eu resolvo isso?

    • Tenta usar o WampServer no lugar do EasyPHP kra, ele faz a mesma coisa. Foi o que eu usei pra fazer o post, e o que o pessoal do meu trabalho usa também, é um servidor bem mais legal eu acho.

      Vlw ae pelo comentário!
      😉

  2. Olá, está retornando o erro

    ibase_connect(): unavailable database

    Estou acessando o phpinfo, e o interbase está habilitado.

    Meu DB é com extensão FDB, e eu salvei no mesmo diretório do arquivo PHP.

    Portanto, o link para o db está assim:

    $db = ‘DATABASE.FDB’;

    Obrigado pela atenção,

    Att, Cauê

    • Oi Cauê,

      Primeiro obrigado pelo comentário!
      Sobre sua dúvida, tente colocar o path completo ($db = ‘localhost:C:\Documents and Settings\usuario\pasta_do_bd\Nome_do_banco.FDB’;).
      Por mais que esteja tudo na mesma pasta, faz uma grande diferença!

      valeu!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s