Jump to content


Photo

Data Truncated Mysql 5


  • Faça o login para participar
4 replies to this topic

#1 marcellorg

marcellorg

    Normal

  • Usuários
  • 76 posts
  • Sexo:Não informado
  • Localidade:brasil

Posted 11/11/2005, 17:06

Galera é o seguinte o Campo Valor e Float(9,2) e qdo insiro algum valor que é em branco ele da erro.
NO MySql 4.xx ficava normal não dava erro

1265-Data truncated for column 'Valor' at row 1
INSERT INTO abc (Nome,Valor)
VALUES
('Marcello','')

e coloco NULL ai o valor padrão do campo float é perdido.
INSERT INTO abc (Nome,Valor)
VALUES
('Marcello',NULL)

alguem sabe como corrigir isso.

MYSQL 5
PHP
Marcello Rodrigues Gonçalves

Icq: 124651529
MSN: marcellorg@yahoo.com.br
E-mail: marcellorg@yahoo.com.br
Site: www.adoracaoplena.com.br/
"Deus não escolhe os capacitados, e sim capacita os escolhidos."

#2 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 11/11/2005, 17:23

Não há oq corrigir, você já conhece o problema e a solução.

Apenas um esclarecimento:
'' é completamente difernete de NULL

Quando você tenta iserir o valor '' em um campo do tipo numérico, ele vai gerar esse erro. Não seria mais prudente gravar NULL ou 0 (zero)?
------
Mero mortal!

#3 marcellorg

marcellorg

    Normal

  • Usuários
  • 76 posts
  • Sexo:Não informado
  • Localidade:brasil

Posted 14/11/2005, 08:55

Sim amigo mas imagina quem ja tem site pronto que foram feito na versão 4.xx do mysql qdo o servidor migrar para o mysql 5

ja imaginou?
Marcello Rodrigues Gonçalves

Icq: 124651529
MSN: marcellorg@yahoo.com.br
E-mail: marcellorg@yahoo.com.br
Site: www.adoracaoplena.com.br/
"Deus não escolhe os capacitados, e sim capacita os escolhidos."

#4 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 14/11/2005, 09:04

Se o MySQL 4 faz um tratamento diferente com versões é outro assunto, em todos os servidores 0 é diferente de '0', da mesma forma que null é diferente de '', mas no MySQL isto poderia aceitar como válido, não sei com relação a versão 5 do MySQL, mas nas demais, ele deixava inserir ou updatear, quando na verdade deveria mostrar uma mensagem de erro.

Então existe uma maneira certa e uma maneira errada de fazer as coisas, como eu disse, se o MySQL, diferente dos demais bancos, considera as duas maneiras corretas. Não seria muito mais prudente, por parte do desenvolvedor, fazer de maneira que funcione???

Eu apenas lhe disse a maneira correta de fazer, se você quiser continuar fazendo do seu jeito, não tem problema, funciona em algumas versões e em outras não.

:)
------
Mero mortal!

#5 marcellorg

marcellorg

    Normal

  • Usuários
  • 76 posts
  • Sexo:Não informado
  • Localidade:brasil

Posted 17/11/2005, 09:11

Galera consegui arrumar uma solução.

no mysql 5 tem que ter um espaço dentro das aspas tipo

'' = errado.
' ' = certo.

como ja tinha tudo feito resolvi fazer o seguinte

mysql_query(str_replace("''","' '",$Query))

colacar um espaço qdo o estiver o campo em branco
espero ter ajudados.

t+
Marcello Rodrigues Gonçalves

Icq: 124651529
MSN: marcellorg@yahoo.com.br
E-mail: marcellorg@yahoo.com.br
Site: www.adoracaoplena.com.br/
"Deus não escolhe os capacitados, e sim capacita os escolhidos."




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq