![]() |
![]() |
![]()
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%) ![]() ![]() |
darko dobrze kombinujesz i też tak próbowałem... jednak gdy zrobię tak jak napisałeś czyli zrezygnuję z
Nie daje żadnej poprawny jednak gdy to zostawię, a usunę:
to już działa czyli prędzej PDO nie lubi jak się od razu mu nie poda w jakiej tabeli chcemy szukać. Gdy jednak na stale wpisze mu:
To błąd znika ale otrzymuję zły wynik zapytania. Zamiast wyświetlić mi ileś tam tytułów jeden pod drugim wyświetla mi wartość zmiennej $what co wygląda to: tytul tytul tytul ... itd. OK szybkie wnioski... Gdy zamiast wstawiania za pomocą bindowania co chcę pobrać (zmienna $what) i w jakie tabeli (zmienna $from) wstawię na stale te dane, zapytanie wygląda wtedy tak:
Wszystko działa prawidłowo. Moje pytanie brzmi: Czy zapytanie typu SELECT nie może przyjmować danych tak jak to robiłem wcześniej aby działało poprawnie? Bo metodą prób i błędów dochodzę do wniosku, że nie moze. Szkoda tylko, że nie udało mi się do tej pory znaleźć ani jednego przykładu, który pokazuje wstawianie danych do zapytania SELECT w postaci zmiennych, ani też informacji o tym, że nie wolno tego robić. Idąc dalej tym tropem, stworzyłem też za pomocą PDO i bindowania zapytanie typu INSERT. Gdy w miejscu VALUES() wstawię zmienne zapytanie działa poprawnie jednak gdy zmienne chcę wstawić w INTO zapytanie już nie działa. Krótko mówiąc metodą prób i błędów osiągnąłem ten sam wynik. PDO nie lubi jak próbujemy wstawić zmienne w miejsca takie jak: co pobieramy, skąd pobieramy itp. Ten post edytował Zagiewa 24.02.2011, 13:09:16 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 15:26 |