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

Não Insere Data No Bd Postgree...


Martinsrj

Pergunta

Erro que está dando:

Warning: pg_query() [function.pg-query]: Query failed: ERROR: invalid input syntax for type date: "2007" in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\Controle_de_Caixa\gravar.php on line 22

ERROR: invalid input syntax for type date: "2007"

Tenho seguinte banco de dados:

Estou utilizando o Banco de dados POSTGRE
CREATE TABLE receitas_despesas
(
id serial NOT NULL,
usuario character varying(30) NOT NULL,
descricao character varying(100) NOT NULL,
tipo character(2) NOT NULL,
data date NOT NULL,
valor double precision NOT NULL,
CONSTRAINT pk_id PRIMARY KEY (id)
)
Pagina: gravar.php
<?php
include "valida_cookies.php";
// Obtem os dados digitados

$usuario = $_COOKIE["usuario"];
$tipo = $_POST["tipo"];
$descricao = $_POST["descricao"];
$mês = $_POST["mês"];
$ano = $_POST["ano"];
$valor = $_POST["valor"];
$data = "$mes01$ano";
if($descricao=="nova")
$nova_descricao = $_POST["descricao_nova"];
else
$nova_descricao = $_POST["descricao_existente"];

$comandoSQL = "insert into receitas_despesas (usuario, descricao, tipo, data, valor) values";
$comandoSQL .= "('$usuario', '$nova_descricao', '$tipo', '$data', '$valor')";
//acesso ao banco de dados
include "conecta_pg.php";
$resultado = pg_query($comandoSQL) or die(pg_errormessage());
// $resultado = pg_query($comandoSQL);

echo "<html><body>";
echo "<p align=\"center\">Inclusão realizada com sucesso!</p>";
//echo "<p align=\"center\"><a href=\"incluir.php?tipo=$tipo\">Incluir outra</a></p>";
//echo "<p align=\"center\"><a href=\"principal.php\">Voltar</a></p>;
echo "</body></html>";

pg_close($conexao);
?>
O Código do Formulário:
<html>
<body>
<h2 align="center"><font color="#0080FF">$$$$$$$</font><font face="Arial, Helvetica, sans-serif"> <strong>Controle de Gastos Mensais</strong> </font><font color="#0080FF">$$$$$$$</font></h2>
<p align="center"> Inclusão de <b><?php echo $titulo; ?></b>:</p>
<hr>

<form method="post" action="gravar.php" name="formulario" onSubmit="return valida_dados(this)">
<input type="hidden" name="tipo" value="<?php echo $tipo; ?>" checked>
<p align="center">
Descrição:
<input type="radio" name="descricao" value="nova" checked>
Nova: <input type="text" name="descricao_nova" size="20"
onKeyDown="java script:formulario.descricao[0].checked=true">
<input type="radio" value="existente" name="descricao"> Existente:
<select size="1" name="descricao_existente"
onChange="java script:formulario.descricao[1].checked=true">
<?php
// monta a lista das descrições já existentes pra esse tipo
include "conecta_pg.php";

$resultado = pg_query("SELECT * from distinct(descricao) from receitas_despesas where usuario='$usuario' and tipo='$tipo' order by descricao");
$linhas = pg_num_rows($resultado);
for($i=0; $i<$linhas; $i++)
{
$descricao = pg_fetch_array($resultado);
echo "<option value=\"$descricao\">$descricao</option>";
}
pg_close($conexao);
?>

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
As datas devem estar no formato YYYY-MM-DD. Remonte a variável $data nesse formato.

Abraços,

Beraldo

Coloquei dessa forma:

$data = "$ano-$mês-01";

Mas continua dando erro:

Warning: pg_query() [function.pg-query]: Query failed: ERROR: invalid input syntax for type date: "2007--01" in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\Controle_de_Caixa\gravar.php on line 22

ERROR: invalid input syntax for type date: "2007--01"

Link para o comentário
Compartilhar em outros sites

  • 0
Veja:

ERROR: invalid input syntax for type date: "2007--01"

O mês não está sendo corretamente recebido. Verifique o nome do campo e se ele foi preenchido.

No formulário o campo mês está dessa forma:

<p align="center">Mês:&nbsp;<select size="1" name "mês">

<option value="1">Jan</option>

<option value="2">Fev</option>

<option value="3">Mar</option>

<option value="4">Abr</option>

<option value="5">Mai</option>

<option value="6">Jun</option>

<option value="7">Jul</option>

<option value="8">Ago</option>

<option value="9">Set</option>

<option value="10">11</option>

<option value="11">Nov</option>

<option value="12">Dez</option>

</select>

Selecionei o mês de novembro colocando o numeral 11, mas continua dando erro.

Se eu colocar a variavel dessa forma:

$data = "$ano/$mês/01";

Ele dá a seguinte mensagem de erro:

Warning: pg_query() [function.pg-query]: Query failed: ERROR: invalid input syntax for type date: "2007//01" in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\Controle_de_Caixa\gravar.php on line 22

ERROR: invalid input syntax for type date: "2007//01"

Link para o comentário
Compartilhar em outros sites

  • 0
Faltou o sinal de igual após o name da tag select.

Use sprintf() para deixar o mês sempre com dois dígitos:

$mês = sprinf("%02d", 1);

$mês, em vez de ter o valor 1, terá 01, possibilitando a formatação correta do tipo DATE. ;)

Realmente Beraldo foi justamente pelo sinal do = que não estava inserindo no banco, porem eu descomentei essas linhas da pagina gravar.php

25 echo "<html><body>";

26 echo "<p align=\"center\">Inclusão realizada com sucesso!</p>";

27 >>//echo "<p align=\"center\"><a href=\"incluir.php?tipo=$tipo\">Incluir outra</a></p>";

28 >>//echo "<p align=\"center\"><a href=\"principal.php\">Voltar</a></p>;

29 echo "</body></html>";

e da o seuinte erro:

Parse error: parse error, unexpected '/' in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\Controle_de_Caixa\gravar.php on line 29

Link para o comentário
Compartilhar em outros sites

  • 0
Poste o código como está atualmente, pois, pelo que vi no anterior, não há como aparecer esse erro. Você deve ter inserido uma barra em algum lugar, sem uerer.

<?php
include "valida_cookies.php";
// Obtem os dados digitados

$usuario = $_COOKIE["usuario"];
$tipo = $_POST["tipo"];
$descricao = $_POST["descricao"];
$mês = $_POST["mês"];
$ano = $_POST["ano"];
$valor = $_POST["valor"];
$data = "$ano/$mês/01"; // data no formato do postgree
// $data = "$ano-$mês-01"; YYYY-MM-DD
if($descricao=="nova")
    $nova_descricao = $_POST["descricao_nova"];
else
    $nova_descricao = $_POST["descricao_existente"];

$comandoSQL = "insert into receitas_despesas (usuario, descricao, tipo, data, valor) values";
$comandoSQL .= "('$usuario', '$nova_descricao', '$tipo', '$data', '$valor')";
//acesso ao banco de dados
include "conecta_pg.php";
$resultado = pg_query($comandoSQL) or die(pg_errormessage());
// $resultado = pg_query($comandoSQL);

echo "<html><body>";
echo "<p align=\"center\">Inclusão realizada com sucesso!</p>";
//echo "<p align=\"center\"><a href=\"incluir.php?tipo=$tipo\">Incluir outra</a></p>";
//echo "<p align=\"center\"><a href=\"principal.php\">Voltar</a></p>;
echo "</body></html>";

pg_close($conexao);
?>

Resolvido!!!

O problema é porque tinha esquecido de aspas

echo "<p align=\"center\"><a href=\"principal.php\">Voltar</a></p>" <<<;

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,3k
    • Posts
      652,1k
×
×
  • Criar Novo...