W konstruktorze klasy jako argumenty podaję nazwę tabeli oraz tablicę z nazwami pól.
Metoda przypisuje nazwę tabeli do zmiennej no i ustawia wartości w tablicy na null. Później łączy się z bazą danych.
Teraz chcę napisać metodę która będzie dodawać rekord ale jako argumenty będzie przyjmować tylko wartości bez nazw pól. Chcę to przypisywać do tablicy pól jaką już mam. To mi bardzo ułatwi pracę.
Do obsługi bazy używam komponentu Database z ezComponents.
Schemat dodania tam jest taki:
<?php $q = ezcDbInstance::get()->createInsertQuery(); . $q->insertInto( 'legends' ) ->set( 'pole', 'wartosc' ) ->set( 'pole2', 'wartosc' ); $stmt = $q->prepare(); $stmt->execute(); ?>
Tu pojawia się problem bo moja metoda ma tylko wartości
<?php ?>
natomiast nazwy pól mam już w zmiennej danego obiektu.
Żeby tylko je wyświetlić nie mam żadnego problemu:
<?php public function Dodaj($aWartosci) { $i=0; foreach($this->aPola as $sPole=>$sWartosc) { $i++; } } ?>
Jednak nie wiem jak ugryźć wrzucanie tego w kolejne "set'y"
Nie mogę dać ->. bo parser tego nie puści z kolei jak dam średnik na końcu to każde pole miałbym w innym rekordzie.
Kombinowałem też żeby to w pętli wrzucać do tablicy a później zbić join'em jako string w zapytaniu. No ale tu też na przeszkodzie stoi -> bo to nie może być stringiem.
Mam nadzieję, że opisałem to dość jasno. Ma ktoś na to jakiś pomysł? Bo pisania z ręki INSERT INTO ....chciałbym uniknąć. Tą całą część chciałem zrzucić na ez.
Pozdrawiam.