Afficher un message
Vieux 14/03/2008, 21h31   #2
Rob Wultsch
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: integers fields and strings

On Fri, Mar 14, 2008 at 12:04 PM, Les Fletcher <les@affinitycircles.com> wrote:
> | Field | Type | Null | Key | Default | Extra |
> | intfield1 | smallint(6) | YES | | 0 | |
> | intfield2 | smallint(6) | YES | | NULL | |
> | intfield3 | smallint(6) | YES | | NULL | |
> UPDATE table SET intfield1='', intfield2='', intfield3='' WHERE ...;
>
> It seems to me that if the value that is being set is invalid for the
> field it should set it to NULL or at least the default value for the
> field instead of 0. Why is it set to 0 regardless?
>
> Les


1. http://dev.mysql.com/doc/refman/5.0/...lid-data.html\
"If you try to store a string that doesn't start with a number into a
numeric column, MySQL Server stores 0. "
2. You are treating an integer like a string. An integer does not need
apostrophes. Without the apostrophes you would get an error. Type cast
it to an int. Better yet use a bind variable.
3. I suggest using a strict sql_mode. You would then get an error for
the blank string.



--
Rob Wultsch
  Réponse avec citation
 
Page generated in 0,04693 seconds with 9 queries