![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Zmieniam strukturę swojego CMS-a dostosowywując go do PDO. Niestety przy wykonaniu:
Pojawia się komunikat: Fatal error: Call to a member function fetch() on a non-object in Dodałem linijkę echo gettype($result); żeby sprawdzić co zwraca mi zapytanie okazało się że wartość boolowską. Już nie sprawdzałem ale jest to zapewne fałsz. Dziwi mnie to bo zapytanie (po uprzednim wykonaniu echo $query) działa dobrze w PhpMyAdmin. Co jest grane ? Drugą sprawą jest to że chciałbym wiedzieć jak metoda query() zwraca obiekt klasy PDOStatement ? Generalnie to chodzi o to jak w ogóle metoda zwracać może obiekt. Prosiłbym o przykład bo zdaje się że z PDO będę miał więcej udręki niż pociechy i będę musiał poprawić swoją poprzednią klasę do obsługi połączeń z bazą danych. ( poza tym zdaje się nie będę mógł dodać do metody query() zliczania ilości zapytań co też mnie frustruje ) Bardzo bym prosił o szybką odpowiedź. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Dopisz sobie jeszcze kod, który wyświetli błąd zwrócony przez bazę danych w przypadku błędnego zapytania. Ja z tym przypadku stawiam na alias: count.
"count" jest słowem kluczowym, więc jeśli chcesz go użyć jako nazwy kolumny/tabeli/aliasu to musisz umieścić go w odwróconych apostforach `count` (Przynajmniej dla bazy danych MySQL. W MSSQL będą to nawiasy kwadratowe: [count] a w przypadku innych baz sam nie wiem co ;] ) -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Ale ja chce pobrać ilość reordów z bazy właśnie przy pomocy słowa kluczowego count
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
lub na :
(PG) ale lepiej nie używać słów kluczowych, wtedy przy zmianie bazy nie trzeba będzie poprawiać "ciapków" P.S. chyba nie ma to wiele wspólnego z obiktowością... -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Ale ze mnie 'ciapek'.
Nie zwróciłem uwagi na to ... swoją drogą wie ktoś dlaczego przy wysyłaniu zapytania przez mysqli_query wszystko jest ej oł kej, a przez PDO::query() odwala mu ? Poprawiłem już właściwie swoją własną klasę (tylko 5 godzin roboty) ona mi przynajmniej przez wyjątek od razu wywala że zapytanie jest niepoprawne ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Drugą sprawą jest to że chciałbym wiedzieć jak metoda query() zwraca obiekt klasy PDOStatement ? Generalnie to chodzi o to jak w ogóle metoda zwracać może obiekt. Prosiłbym o przykład bo zdaje się że z PDO będę miał więcej udręki niż pociechy i będę musiał poprawić swoją poprzednią klasę do obsługi połączeń z bazą danych. ( poza tym zdaje się nie będę mógł dodać do metody query() zliczania ilości zapytań co też mnie frustruje ) Bardzo bym prosił o szybką odpowiedź. Metoda może zwracać cokolwiek, obiekty także. Tworzysz obiekt, zwracasz referencję. Jak chcesz zrobić licznik zapytań, to po prostu stwórz klasę dziedziczącą po PDO i nadpisz metodę query, zapisując licznik (zwracając uwagę na nieudane zapytania...). -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Cytat Metoda może zwracać cokolwiek, obiekty także. Tak wiem sprawdziłem po tym jak to napisałem ![]() Cytat Jak chcesz zrobić licznik zapytań, to po prostu stwórz klasę dziedziczącą po PDO i nadpisz metodę query, zapisując licznik Nie podoba mi się pomysł dziedziczenia po klasie której struktury nie mogę sprawdzić.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie podoba mi się pomysł dziedziczenia po klasie której struktury nie mogę sprawdzić. Na pewno będzie to wygodniejsze i mnie pracochłonne niż wkomponowanie instancji obiektu PDO w inny. Poza tym nie widzę nic złego w dziedziczeniu z klasy, której nie znamy wewnętrznej struktury. Przecież wystarczy interfejs, żeby dołożyć warstwę kontroli na wywoływaną metodę. -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Do tego to jest chyba jedne z ważniejszych założeń programowania obiektowego, hermetyzacja. Wiedząc jaki ma interfejs możesz już korzystać. (kłopoty są czasem jak jest kiepski opis, lub to co korzystamy ma jakieś błędy)
-------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 19:57 |