Ir para conteúdo
Fórum Script Brasil
  • 0

Php + Firebird


Guest americo belmiro

Pergunta

Guest americo belmiro

Amigos preciso faser o firebird funcionar com o php, qudo tento conectar

a seguinte menssagem aparece unavailable database,

nota:

o firebird eo php + apache estão funcionando

o que faço

a o fire é o 1,5 sad.gif

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

/* veja :

O PHP não possui um comando específico para criação de bases de dados FireBird, mas é possível utilizarmos o cliente isql nativo para realizar esta função. Para isto, é preciso apenas criar um pequeno script, e executar o isq com este script como parâmetro.

Usando o isql

Para realizarmos nosso objetivo, vamos usar a opção de file input do comando isql para executar o script que contém os comandos SQL necessários para criação da base de dados.

isql -i filename

Nosso objetivo é criar um programa em PHP que aceite de um usuário um nome para a base de dados, e transforme esta informação em um pequeno script SQL que será passado como parâmetro para o comando isql.

Aceitando o Nome do Banco de Dados

O seguite script HTML aceita um nome para uma base de dados, e transfere esta informação para um script PHP que cria e executa o arquivo SQL:

<html> 
<head> 
<title>FireBird CREATE DATABASE</title> 
</head> 
<BODY bgcolor="#ffffff" text="black" link="#0000a0" alink="#0000a0" vlink="#0000a0"> <font face="arial,verdana,helvetica" size=3> 
<b>FireBird CREATE DATABASE</b>
<p> 
<table border=0 cellpadding=5 cellspacing=0 bgcolor="#6699cc"> 
<tr> 
<td> <font face="arial,verdana,helvetica" size=2> 
<FORM ACTION="ibcreate.php" METHOD="POST"> 
Database:<BR> 
<INPUT NAME="ibname" TYPE=text SIZE=50 MAXSIZE=80 VALUE=""> 
<P>
<INPUT TYPE=submit VALUE="Send"> <INPUT VALUE="Clear" TYPE=reset> 
</FORM> 
</td> 
</tr> 
</table>
</body>
</html>

Testando a Existência do Banco de Dados

Antes de criarmos um novo banco de dados, é necessário checarmos se já existe alguma base com o mesmo nome. O método mais fácil para isso, é tentando realizar uma conexão com um banco de nome idêntico ao que queremos criar:

$ibname .=".gdb"; (opcionalmente podemos adicionar a extensão ".gdb" ao nome da base de dados)
$conn=ibase_connect("localhost:/home/firebird/$ibname", "SYSDBA", "masterkey");
if (!$conn) {
$ibok=true;
} else {
$ibok=false;
ibase_close($conn);
}

Caso a variável boolena $ibok retorne True, significa que a tentativa de conexão com o banco de dados falhou, provando assim que o mesmo não existe. Portanto, podemos usar o nome para criação de uma nova base de dados.

Criando o script SQL

$ibcreate="CREATE DATABASE "/home/firebird/$ibname" PASSWORD "masterkey";n";
$ibscript=fopen("/home/firebird/ibcreate.sql","w");
fwrite($ibscript,$ibcreate);
fclose($ibscript);

Obs:: É preciso ter permissão de escrita no diretório selecionado (/home/firebird/) para geração do arquivo. Caso o servidor Web seja o Apache, em ambiente Linux, normalmente os comandos:

chown -R apache /home/firebird
chgrp -R apache /home/firebird
chmod -R 0775 /home/firebird

Darão privilégios de escrita para o PHP executado via browser. 

Executando o Comando isql

if (!exec("/opt/firebird/bin/isql -i /home/firebird/ibcreate.sql"))
die ("Erro executando isql");
echo "O Banco de Dados: $ibname, foi criado com sucesso!";

Se o comando exec encontrar erros, o comando die ("Erro executando isql") será executado, e o script PHP será finalizado.

É bom lembrar que nosso exemplo apenas cria o banco de dados. Muitos outros parâmetros podem ser utilizados (tais como: PAGE SIZE, DIALECT, USER, etc.) como argumentos na expressão CREATE DATABASE. 

O fonte ibcreate.php:

<html>
<head>
<title>FireBird CREATE DATABASE</title>
</head>
<BODY bgcolor="#ffffff" text="black">
<font face="arial,verdana,helvetica" size=3>
<?
$ibname .=".gdb"; 
$conn=ibase_connect("localhost:/home/firebird/$ibname", "SYSDBA", "masterkey");
if (!$conn) {
$ibok=true;
} else {
$ibok=false;
ibase_close($conn);
}
if ($ibok) {
$ibcreate="CREATE DATABASE "/home/firebird/$ibname" PASSWORD "masterkey";n";
$ibscript=fopen("/home/firebird/ibcreate.sql","w");
fwrite($ibscript,$ibcreate);
fclose($ibscript);

if (!exec("/opt/firebird/bin/isql -i /home/firebird/ibcreate.sql")) 
die ("Erro executando o comando isql");

echo "O Banco de D: $ibname, foi criado com sucesso!";
} else {
echo "Impossível criar o Banco de Dados: $ibname. Banco de Dados já existe!";
}
?>
</body>
</html>

Firebird

*/

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...