Pazi ovako, problem je u tome shto kod nije neshto posbeno fleksibilno napisan.Kada se instancira objket (php je u pitanju) a koji je obichno vezan za bazu, instanciraju se i vrednosti tog objekta tj default vrednosti kolona. To ne bi bio problem (tj tvoje reshenje bi radilo) da 'update()' funckcija te klase (alias objekta) ne korsiti vec deklarisane promenljive.
Drugim rechima, kada se instancira objekt on vec deklarishe sve kolone sa default vrendostima, i kada ga eventulano updejtujesh/kreirash on komuncira sa bazom, tj unosi u bazu sve kolone/promeljive (preko PEAR-a) koej su se deklarisale prilikom instaciranaj (sa izuztekom onih koje su se promenile i primary key-a, koji je deklarisna u bazi kao autoincrement) i nema shanse da postavim default_value u bazi , tj on ne igra nikakvu ulogu, jer default value je vec deklarisana u klasi kao "prazan string" a u varijabli vezanoj za tu kolnu.
da ne zbunjujem...
kada se pozove update funkcija i kada ona obradi unos (u ovom slucaju, recimo da smo samo prosledili vrendosti za kolonu2 i kolonu 4) , eventulano u sql-u query izgleda neshto ovako...
Code:
insert into users (kolona1, kolona2,kolona3, kolona4,kolona5) VALUES ('',2,'',7,'');
ako je uslov da su kolone sve deklarisane kao integers onda mi ovde mysql - a kod praznih stringova- javi error (shto je ok) dok mssql je ovakav sluchaj sredjivao tako shto je prazan string uzimao kao 'default_value' iz baze i/ili kao 0 (ako niej deklarisana default value) tj nije bacao error.
ma, problem je u tome shto je kod (uslovno recheno) lohse napisan, tj , svaka kolona ima svoju statichnu varijablu kao referencu u nizu . tj ja moram ruchno svaku kolonu u klasi a gde je deklarisana, neshto kao
Code:
public $fieldvalues = array(self::FEILD_NAME_REFERENCE_ID=>"", self::FEILD_NAME_SOME_ID=>"",itd)
,
da menjam u
Code:
public $fieldvalues = array(self::FEILD_NAME_REFERENCE_ID=>0, self::FEILD_NAME_SOME_ID=>0, itd)
ili idelano u
Code:
public $fieldvalues =array(self::FEILD_NAME_REFERENCE_ID=>slef:DEFAULT_INTEGER_VALUE,self::FEILD_NAME_SOME_ID=>self::DEFAULT_INTEGER_VALUE)
i sve ovo ne bi bio problem (toliki), da nema preko 30-40 klasa svaka skoro sa svojom tableom i svaka sa bar minimum 5-6 deklarisanih integer kolona i shto ja moram malte ne da svaku statichnu varijbalu provereavam sa bazom (da vidim jel integer type) pa da je promenim, pa tako za drugu, trecu.....tkodje, sa regulars expresssionsima nema shanse da se reshi sluchaj a zbog goreg navedenog.
elem, nije ovo neshto ozbiljno (ma kako zvuchao) , koliko sam ja mozhda lenj...i shto moram jedno dva dana da provedem vreme na opvakvu glupost, menjajuci svaku kolonu i posle da testriam je l sve radi..mesto da se koncetrishem na ostale stvari vezane za datu applikaciju. a ljudi naravno nece pravdanja vec....rezultate
bilo kako bilo, havla na odgovrima josh jednom.
[Ovu poruku je menjao trivial dana 04.05.2007. u 18:31 GMT+1]
[Ovu poruku je menjao trivial dana 04.05.2007. u 18:35 GMT+1]
[Ovu poruku je menjao trivial dana 04.05.2007. u 18:40 GMT+1]
[Ovu poruku je menjao trivial dana 04.05.2007. u 18:42 GMT+1]