![]() |
![]() ![]() |
![]() |
![]()
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 ;] ) |
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) co widać aha nie widać bo nie podałem tutaj zapytania. Przepraszam, mea kulpa. $query = 'SELECT COUNT(n_id) AS count FROM `news` WHERE `lang`=\''.USER_LANG.'\'';
|
|
|
![]()
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%) ![]() ![]() |
|
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) 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)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:42 |