[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