phpbar.de logo

Mailinglisten-Archive

Re: [php] NULL oder "Wert" in SQL-Statement einfügen

Re: [php] NULL oder "Wert" in SQL-Statement einfügen

Sebastian Tobias Mendel genannt Mendelsohn lists at sebastianmendel.de
Fre Okt 24 12:41:34 CEST 2003


Sebastian Tobias Mendel genannt Mendelsohn wrote:

>> In eine MySQL-Tab soll etwas _aktualisiert_ werden, dabei kann der
>> entsprechende Wert "x" oder eben NULL sein.
>>
>> ...
>> $upd_bestellposition.= "erledigt = '".$erledigt."'";
>> ...
>>
>> ^ Geht ja nur, wenn $erledigt = "" oder "x" ist. Aber wie geht's wenn
>> $erledigt = NULL?
>> Muss ich dann in der Syntax eine Fallunterscheidung machen, eben ob NULL
>> oder nicht NULL?
> 
> achja, noch was, wenn denn nur x oder NULL in die spalte soll ginge es 
> auch so:
> 
> ALTER TABLE `table` CHANGE `erledigt` `erledigt` ENUM('x') DEFAULT NULL
> 
> und dann so:
> 
> $upd_bestellposition .= "`erledigt` = ".$erledigt;
> 
> erledigt sollte dann den Wert 1 oder NULL haben
> 
> ergäbe also:
> 
> `erledigt` = 1
> oder
> `erledigt` = NULL
> 
> is aber eigentlich schlechtes Design, denn wenn das Feld wirklich bloß 
> zwei werte haben soll, nämlich übersetzt Ja und Nein dann wäre entweder 
> ein Feld vom Typ Bool oder enum('0','1') (oder 'ja','nein' ... 
> 'yes','no') das richtige!

ach verdamt, das mir immer noch was einfällt nachdem ich meine Mails 
verschickt habe,

NULL ist in diesem fall auch aus einem weiteren Grund ein schlechter 
Wert, denn NULL bedeutet ja 'nicht definiert'/'undefiniert' oder 'nicht 
zutreffend' oder so was in der Art,
da aber ein 'Auftrag' eigentlich immer nur 'erledigt' oder 'nicht 
erledigt' sein kann ist NULL hier falsch!

kurz: NULL an dieser Stelle ist schlechtes DB-Design.

-- 
Sebastian Mendel

*www.warzonez.de*
www.sebastianmendel.de | www.tekkno4u.de | www.nofetish.com


php::bar PHP Wiki   -   Listenarchive