merlinus 1 Denunciar post Postado Janeiro 8, 2012 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
brhvitor6 14 Denunciar post Postado Janeiro 8, 2012 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
merlinus 1 Denunciar post Postado Janeiro 8, 2012 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 Knupp Vital 136 Denunciar post Postado Janeiro 8, 2012 Claro, o campo do formato 'DATA' deve ser uma data, portanto não aceita NULL, daí quando você insere, vai formatar para o padrão do campo .. Compartilhar este post Link para o post Compartilhar em outros sites
merlinus 1 Denunciar post Postado Janeiro 8, 2012 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
Andrey Knupp Vital 136 Denunciar post Postado Janeiro 8, 2012 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
merlinus 1 Denunciar post Postado Janeiro 9, 2012 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
Dárcio Gomes 10 Denunciar post Postado Janeiro 10, 2012 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
merlinus 1 Denunciar post Postado Janeiro 10, 2012 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