Ir para conteúdo

POWERED BY:

Arquivado

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

Scientist

Campo Vazio ou Nulo

Recommended Posts

Bom, toda vez que eu salvo um formulário em PHP, se determinado campo não for preenchido ele é enviado para o banco como "VAZIO", mais ou menos assim: NOME = ''

 

Porém, o campo deveria ser NULL se não tiver nada preenchido, gostaria de saber se implica em alguma coisa (desempenho principalmente) deixar os campos com valor VAZIO no Mysql em vez de NULL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é .. mesmo que eu não digite nada em um campo ele manda como "" e não como NULL.

 

O problema disso é: Se eu tiver um campo UNIQUE (CPF) e se tiverem 2 VAZIOS ele já considera como DUPLICATE KEY, por outro lado se forem todos NULL não há problema de DUPLICATE KEY.

 

Só que o PHP, como eu havia dito, mesmo não digitando nada, ele manda VAZIO e queria que ele mandasse direto NULL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

NULL e "" são praticamente a mesma coisa se não me engano

"" é considerado 1 caractere, já o NULL não é considerado caractere.

 

NULL é diferente de zero(0), é diferente de uma string vazia ("") e é diferente de uma variável que não foi inicializada (empty). O NULL é algo que possui valor mas você não sabe, algo indefinido.

 

Para entender melhor, imagine que você tenha um livro. Você sabe que aquele livro existe mas não sabe o conteúdo que tem lá, então, o valor do livro é NULL. No momento em que você abre o livro e lê as primeiras folhas do mesmo, seu valor já não é mais NULL, pois você já tem conteúdo para associar a aquele livro.

 

Pois é .. mesmo que eu não digite nada em um campo ele manda como "" e não como NULL.

 

O problema disso é: Se eu tiver um campo UNIQUE (CPF) e se tiverem 2 VAZIOS ele já considera como DUPLICATE KEY, por outro lado se forem todos NULL não há problema de DUPLICATE KEY.

 

Só que o PHP, como eu havia dito, mesmo não digitando nada, ele manda VAZIO e queria que ele mandasse direto NULL.

Basta setar o valor NULL na variável que vai para o banco :)

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.