Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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??
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
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 ..
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.
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 !
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.
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
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
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)