Ir ao conteúdo
  • Cadastre-se

falha ao inserir dados (postgres)


Posts recomendados

Olá, galera, tudo bem? Então, eu ando tendo alguns problemas com a inserção de dados nas tabelas pelo PHP em forma de formulário (e mesmo sem o formulário)...
Quando uso SELECT ele mostra os dados normalmente, mas não consigo inserir dados pelo site... Vou postar os códigos que estou usando:

 

formulario.html

<HTML><HEAD><TITLE>Formulário de Cadastro</TITLE></HEAD><BODY><center>     <form name = "frmCadastro" method="POST" action = "cadastrar.php">           Nome:<input type="text" size="20" name = "nome"><BR>           <input type="submit" value="Gravar">     </form><center></BODY></HTML>

conecta.php

<?php     $conectabd = pg_connect("dbname=postgres port=5432 host = hocalhost user = postgres password = ******");     if ($conectabd) {        //Caso queira Imprimir na Tela a mensagem, retirar o comentário        //echo "Conectado com: " . pg_host($conectabd) . "<br/> ";     }     else {          echo pg_last_error($conectabd);          exit;     }?>

executa.php

<?php     function executa($Sql){             //Testando se existe o arquivo             if (file_exists("conecta.php")){                 include("conecta.php");              }              if (!file_exists("conecta.php")){                 $msgErro = "<center><font color='#FF0000'><b>";                 $msgErro .= "Não foi possível conectar ao banco de Dados<br>";                 $msgErro .= "Porque não existe o arquivo 'conecta.php'.";                 $msgErro .= "</b></font></center>";                 echo "<br><br>";                 echo $msgErro;                 exit;              }              $Resultado = pg_query($conectabd,$Sql);              pg_close($conectabd);              return $Resultado;     }?>

e por fim o cadastrar.php

<?php     //Verifica se existe o arquivo executa.php para poder incluí-lo     if (file_exists("executa.php")){         include("executa.php");		 echo "Executa.php existe e foi conectado. <br><br>";     }     if (!file_exists("executa.php")){        $msgErro = "<center><font color='#FF0000'><b>";        $msgErro .= "Não será possível executar nenhuma ação no Banco de Dados!<br>";        $msgErro .= "Porque não existe o arquivo 'executa.php'.";        $msgErro .= "</b></font></center>";        echo "<br><br>";        echo $msgErro;        echo "<br>";        exit;     }	    $nome = pg_escape_string($_POST['nome']);         $query = "INSERT INTO teste(nome) VALUES('" . $nome . "')";         $result = pg_query($query);         if (!$result) {             $errormessage = pg_last_error();             echo "Erro com query: " . $errormessage;             exit();         }         printf ("Esse valor foi incluído na database - %s ", $nome);         pg_close(); ?>

Quando insiro pelo formulário, ele me direciona para o cadastrar.php e a página mostra:

 
Executa.php existe e foi conectado. 

Erro com query:

... alguma solução? Já estou pirando...

Link para o comentário
Compartilhar em outros sites

dicas:
- palavra "localhost" grafada errada;
- "if" sem conteúdo (arquivo "conecta");
- usuario e banco de dados com o mesmo nome ("postgres") - não é recomendável, pois dá margem a ambiguidades.

 

mensagens de erro: há vários erros, mas todos estão convergindo para a mesma mensagem: a ultima, o que está correto pois é ela que está corretamente configurada (resposta "erro com query").

a 1ª resposta ("arquivo existe...") está correta, desde que o arquivo realmente exista mas a função não serve p/ verificar a conexão, ela só tem a finalidade de verificar se existe o tal arquivo ("file_exists"), então a resposta esta na verdade "metade" errada, ok?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...