[firebase-br] [meio off] Firebird e PHP ibase_close

Sandro Souza escovadordebits em gmail.com
Ter Maio 5 14:46:34 -03 2009


Bom dia/tarde Gugui.

Grande Gugui, sempre procure informar o identificador da conexão para não
acabar fechando outra conexão (no pior dos casos).

Também estou trabalhando com PHP e Firebird, e nesse caso, faça o seguinte:

<?php
  try {
    // Tentando conectar no banco.
    $conexao = *ibase_connect*("localhost:novogasip", "sysdba", "masterkey",
"iso8859_1", 0, 3);
    if(!$conexao)
      throw new Exception(ibase_errmsg());
  } catch(Exception $e) {
    // Trata a mensagem de erro, como por exemplo, acrescenta-a em algum
arquivo de "log".
    echo $e->getMessage(); // Essa linha é apenas um exemplo de como obter a
mensagem da exceção.
  } // catch
  // Iniciando uma nova transação.
  $transacao = *ibase_trans*(IBASE_WRITE|IBASE_COMMITTED|IBASE_REC_NO_VERSION|IBASE_WAIT,
$conexao);
  try {
    // Enviando um comando SQL para que o banco de dados faça um
pré-processamento (compilação).
    $comando = *ibase_prepare*($transacao, "INSERT INTO ...........");
    if(!$comando)
      throw new Exception(ibase_errmsg());
    // Executa o comando que foi pré-processado.
    *ibase_execute*($comando);
    // Criando uma query dentro da transação atual.
    $query = *ibase_query*($transacao, "SELECT ........");
    if(!query)
      throw new Exception(ibase_errmsg());
    // Processando todos os registros retornados.
    while($registro = *ibase_fetch_assoc*($query)) { // Você pode usar *
ibase_fetch_object* se preferir.
      // Processa o registro atual.
      echo $registro["campo1"]; // Ou echo $registro->campo1;
    } // while
    // Fechando a query.
    *ibase_free_result*($query);
    // Efetivando (comitando) a transação.
    *ibase_commit*($transacao);
  } catch(Exception $e) {
    // Trata a mensagem de erro, como por exemplo, acrescenta-a em algum
arquivo de "log".
    echo $e->getMessage(); // Essa linha é apenas um exemplo de como obter a
mensagem da exceção.
    // Criou uma transação?
    if($transacao)
      // Cancela a transação atual.
      *ibase_rollback*($transacao);
    exit();
  } // catch
  // Encerra a conexão com o banco de dados.
  *ibase_close*($conexao);
?>

Esse exemplo é bem básico, mas espero que sirva para dar uma luz.

Caso você necessite armazenar dados binários (campos blobs), e precisar de
ajuda, é só avisar (ibase_blob_create, ibase_blob_add, ibase_blob_info,
ibase_blob_open, ibase_blob_get e ibase_blob_close).

Espero ter ajudado mais que atrapalhado.

2009/5/5 Gugui <suporte em emar.com.br>

> Olá pessoal,
> no PHP qdo eu abro uma conexão com o Firebird dessa forma:
>
> if(ibase_connect( $banco,$usuario,$senha, 'NONE','100','3')) {
>
>   ...
>   ibase_close;
>
> }
>
> usando o ibase_close; sem parametros eu fecho a conexão com o banco ?
>
> grato qq ajuda
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista