![]() |
![]() |
![]()
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: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
I owszem zrobiłem tak zanim napisałem na forum i wszędzie pisze nawet na jednym z tematów na tym forum, że trzeba sprawdzić czy ma się włączoną obsługę extension=php_pdo_mysql.dll - mam. Druga sprawa to czy ma się PHP w wersji co najmniej 5.1 - mam. Czy phpinfo() pokazuje, że mamy włączone PDO - mam. Więc czego może jeszcze brakować? ale OK będę szukał dalej
OK mam. Miałem zakomentowane: extension=php_pdo_mysql.dll Teraz działa. Ok więc korzystając z PDO udało mi się przekształcić poprzednią klasę na tą poniżej.
Jednak pisząc to zaczęły pojawiać się pytania... tehaha - do mojej poprzedniej klasy wspomniałeś o luce SQL_Injection i że brakuje mi mysql_real_escape_string() gdy zastosowałem tą funkcję do obecnej klasy dla którejkolwiek zmiennej (DB, what, from) otrzymałem błąd. Co do tego błędu to jeszcze się zajmę nim później ale moje pytanie - czy PDO jest bezpieczne od SQL_injection? Druga sprawa to czy muszę za każdym razem łączyć się z bazą gdy chcę utworzyć nowe zapytanie? Bo gdy chciałem utworzyć jedną metodę do łączenia się z bazą, a drugą z zapytaniem o konkretną tabelę to nie działało - zrobiłem błąd czy tak ma być? Ten post edytował Zagiewa 23.02.2011, 00:15:32 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 03:12 |