Zacząłem ostatnio pisać ORM i natrafiłem na problem przy zapisywaniu danych. Narazie rozwiązałem to tak:
<?php class ORM { public function Save(OrmDataRecord $obj) { $keys = ''; $data = ''; { foreach($obj->fields as $key => $value) { $keys .= '`'.$key.'`'; $data .= '`'.$key.'` = "'.$value.'"'; } return db::query('INSERT INTO '.$this->table.'('.$keys.') VALUES('.$data.')'); } // tu bedzie UPDATE } } ?>
$this->unique_field - to string który przechowuje nazwe pola głównego (czyli głównie id)
$obj->fields - to tablica asocjacyjna gdzie klicze są nazwami kolumn a wartość, wartościami tych kluczy które zostana zapisane do bazy.
$obj - to obiekt innej klasy (DataObject).
Wydaje mi sie że trochę --[zmoderowane]-- sprawe z tymi przecinkami, ale chodzi mi głównie na wydajności. No i mam pytanie co by było lepsze czy zrobienie tak jak to zrobiłem w pętli foreach z tymi instrukcjami warunkowymi czy bawienie się tablicami (impode itd) aby prowidłowo wstwić przecinki.
Pozdrawiam
---
Zagwiazdkowane wulgaryzmy to nadal wulgaryzmy. Jak sie wysłowić bez tego nie potrafisz to nie wypowiadaj się publicznie.
Jeszcze raz i bedzie ostrzeżenie.
~mike_mech