Ir para conteúdo

POWERED BY:

Arquivado

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

merlinus

inserir campos vazios mysql

Recommended Posts

Olá gente, tenho no meu código o seguinte:

 

INSERT INTO `teste`.`testedata` (`cnpj` ,`data`) VALUES ('$cnpj', '$data');

 

o único problema é que tanto o cnpj quanto a data as vezes são vazios, tentei inicialmente colocar um if($cnpj=="")$cnpj=null, mas não adiantou por causa das aspas, se tiro as aspas ele bagunça o cnpj retirando os zeros a esquerda.

 

Alguem sabe alguma solução melhor do que criar várias querys dentro de ifs??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vejo problema em deixar o campo vazio, mas lembre-se que tenq ir no MySQL e comfigurar o campo como Nulo (ou seja, pode ser vazio)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim ele está configurado para nulo e tb esta q o valor padrão é nulo,

Mas quando tento inserir $data="", ao inves de aparecer null no bd, ele aparece 0000-00-00

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey, acho q boei na sua explicação, pois quando tento colocar NULL ele aceita, desde q seja sem as aspas, já o campo cnpj a mesma coisa, com o agravante que não posso colocar sem as aspas, pois qdo tem zero a esquerda se não coloco as aspas eles somem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, com aspas ele está considerando NULL uma string, como você tem o campo pre-formatado, qndo chegar no banco, vai entrar uma 'string' de formato inválido, o que faz sua data ficar com 0000-00-00 .. certo ? para mandar NULL, tem que mandar sem aspas mesmo !

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza então já q não tem jeito vou faser algo do estilo:

 

Sq1="INSERT INTO `teste`.`testedata` (`cnpj` ,`data`) VALUES (";
if ($cnpj=="")$sq1=$sq1."null,";
else $sq1=$sq1."'$cnpj',";
if ($data=="")$sq1=$sq1."null);";
else $sq1=$sq1."'$data');"

 

fica meio "samba do criolo doido" mas funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho uma sugestão...

 

$sql="INSERT INTO 'teste'.'testedata' ('cnpj' ,'data') VALUES ('$cnpj', '')";

para inserir o campo data vazio, porém se a coluna tiver configurado como data irá

inserir na tabela como 0000-00-00...

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Darc, esse é o problema, inicialmente o código estava assim, então o programador anterior colocou uma instrução para alterar todos, eu disse TODOS dados da tabela que estivessem como 0000-00-00 para null.

Eu estou tentando melhorar isso

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.