![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Chcę stworzyć klasę do połączenia SQL w której będą też metody do zapytań jednak zależy mi na stworzeniu bardzo wydajnej klasy, a co więcej, żeby cały kod był dobrej jakości dlatego też ja mam pomysł i jakiś zalążek wiedzy, wy za to duże doświadczenie więc liczę, że mi trochę pomożecie (IMG:style_emoticons/default/smile.gif) Głównym motywem na chwile obecną jest stworzenie metod, które będą generowane w zależności od tego co będziemy chcieli osiągnąć. Poniżej zamieszczę kod, który do tej pory napisałem, a pod nim pytania.
1. Chciałem aby można było za pomocą jednej metody łączyć się z różnymi bazami dlatego zanim wywołamy metodę SQL_connect() dzięki konstruktorowi podajemy, która baza nas interesuje. Teraz pytanie czy rozwiązanie to jest dobre? Czy może lepiej było by usunąć konstruktor i nazwę bazy podać bezpośrednio do metody czyli: SQL_connect("nazwa_bazy")? 2. Jak wiadomo zanim wykonamy jakiekolwiek operacje na tabelach w bazie trzeba się połączyć z bazą więc łączenie z SQL MUSI się odbyć prawda? więc zastanawiam się czy by nie zrezygnować z metody SQL_connect() i całość kodu wstawić w konstruktor wyglądało by to tak:
Ma to sens? Mam jeszcze pytania odnośnie metody select_table() ale to innym razem. Jeśli macie ew. jakieś zastrzeżenia co do tego kodu to piszcie. Z góry dzięki (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 1 Dołączył: 19.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Obiekt $pdo jest połączeniem do bazy. Rozłączasz się z bazą przypisując mu wartość null, czyli kasując odpowiadającą mu referencję.
Z bazą łączysz się, jeżeli chcesz wykonać zapytanie a nie jesteś z nią połączony;) Czyli jak się po pierwszym zapytaniu nie rozłączysz to możesz ich wykonywać ile chcesz i ponownie łączyć się nie musisz. PDO jest bezpieczne jeżeli będziesz go używał tak jak w example 7: http://www.php.net/manual/en/pdo.prepared-statements.php używając bindowania. Wtedy zapytanie jest takim niby szablonem do którego wstawiane są przy wykonywaniu odpowiednie dane i prawodpodobnie zabezpiecza to w stu procentach przed zmianą zapytania poprzez wstawienie przez użytkownika odpowiednio spreparowanych danych. Ogólnie to wydaje mi się że nie powinieneś kombinować z pisaniem dodatkowych klas tylko korzystać bezpośrednio z pdo, bo to trochę jakbyś chciał uokrąglać koło żeby się lepiej kręciło;) Co do samego pisania klas, wydaje mi się że powinno się unikać dołączania plików w klasach a zwłaszcza w ich metodach bo to zmniejsza elastyczność. Już chyba lepiej byłoby te dane bazy podać konstruktorowi tej klasy jako argumenty. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 02:49 |