Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Francisco Tessarollo

Problema na inserção de dados

Recommended Posts

Boa tarde pessoal, estou usando o Postgres 8.3 com PHP.

 

Estou inserindo dados no banco de dados. através do código abaixo:

 

$query = "INSERT INTO pessoa (\"nome\", \"cpf\", \"passaporte\", \"nascimento\", \"sexo\", \"idLogradouro\", \"idBairro\", 
		              \"numeroReside\", \"complementoReside\",  \"cepReside\")
		     values ( '$nomePessoa', '$cpf', '$passaporte', '$dataNascimento', '$sexo', '$idLogradouro', 
			    '$idBairro', '$numeroReside', '$complementoReside', '$cepReside' )";
$conexao->Executar($query);

O problema está quando as variáveis são nulas. Por exemplo, se a variável $nomePessoa contiver a string "João Antonio", o dado é inserido corretamente. Mas se a variável tiver vazia, o dado inserido é '' (duas aspas duplas). E isso tem me incomodado bastante. Principalmente nos campos de tipos restritos que não aceitam qualquer tipo de dados (ex: real, date, etc). Alguém tem alguma solução pra isso?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde pessoal, estou usando o Postgres 8.3 com PHP.

 

Estou inserindo dados no banco de dados. através do código abaixo:

 

$query = "INSERT INTO pessoa (\"nome\", \"cpf\", \"passaporte\", \"nascimento\", \"sexo\", \"idLogradouro\", \"idBairro\", 
	 \"numeroReside\", \"complementoReside\", \"cepReside\")
	 values ( '$nomePessoa', '$cpf', '$passaporte', '$dataNascimento', '$sexo', '$idLogradouro', 
		 '$idBairro', '$numeroReside', '$complementoReside', '$cepReside' )";
$conexao->Executar($query);

O problema está quando as variáveis são nulas. Por exemplo, se a variável $nomePessoa contiver a string "João Antonio", o dado é inserido corretamente. Mas se a variável tiver vazia, o dado inserido é '' (duas aspas duplas). E isso tem me incomodado bastante. Principalmente nos campos de tipos restritos que não aceitam qualquer tipo de dados (ex: real, date, etc). Alguém tem alguma solução pra isso?

 

Obrigado.

 

Simples, basta fazer uma validação:

 

$query = "INSERT INTO pessoa (\"nome\", \"cpf\", \"passaporte\", \"nascimento\", \"sexo\", \"idLogradouro\", \"idBairro\", 
	 \"numeroReside\", \"complementoReside\", \"cepReside\")
	 values ( ".(strlen(trim($nomePessoa)) > 0 ? "'".$nomePessoa."'" : "NULL").", '$cpf', '$passaporte', '$dataNascimento', '$sexo', '$idLogradouro', 
		 '$idBairro', '$numeroReside', '$complementoReside', '$cepReside' )";
$conexao->Executar($query);

E assim sucessivamente.

 

Obs: O nome das colunas não precisa ter obrigatoriamente as aspas, a menos que o nome da coluna no banco de dados tenha elas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.