Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z klasa obslugujaca baze
marcini82
post
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam!

Mam klase, ktora obsluguje baze danych, a w niej metode wyciagajaca wiersze z wyniku:
  1. <?php
  2.  
  3. class Baza{
  4.  
  5. function ileWierszy($zapytanie){
  6. $ile=pg_num_rows($zapytanie);
  7. return $ile;
  8. }
  9.  
  10. function pobierzWiersz($zapytanie, $rodzaj_tablicy='PGSQL_ASSOC'){
  11. // mozliwy tez rodzaj PGSQL_NUM
  12. if ($this->ileWierszy($zapytanie)>0){
  13. $wiersz=pg_fetch_array($zapytanie, $rodzaj_tablicy);
  14. return $wiersz;
  15. }else{
  16. return false;
  17. }
  18. }
  19.  
  20. }
  21.  
  22. ?>


No i jak wywoluje normalnie
  1. <?php
  2. $wiersz=$baza->pobierzWiersz($zapytanie);
  3. ?>
to pobiera ladnie.

Ale jak chce pobrac wszystkie wiersze:
  1. <?php
  2.  
  3. while ($wiersz=$baza->pobierzWiersz($zapytanie)){
  4.  // tu jakis kod
  5. }
  6.  
  7. ?>

to robi mi sie nieskonczona petla.
Dlaczego $baza->pobierzWiersz() nie zwraca false jesli skoncza sie wiersze do pobierania?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


OT
Po co Ci ta klasa?
Jest ona całkowicie bezużyteczna, jest tylko nadpisaniem wbudowanych funkcji i nie robi nic poza nimi.
Go to the top of the page
+Quote Post
marcini82
post
Post #3





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat
Po co Ci ta klasa?

Zalozenie bylo takie, zeby mozliwe bylo ewentualne przeniesienie aplikacji z pgsql na mysql pooprzez zamiane tej wlasnie klasy i ew. poprawienie jeszcze czegos tam, ale zeby nie trzeba bylo przy tym podmieniac funkcji bazy danych w calym kodzie.
No i mam w niej obsluge bledow bazy danych.

Ten post edytował marcini82 22.02.2006, 10:14:58
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Skoro piszesz abstrakt bazodanowy to zajrzyj do AdoDB i do Creole.
Zobaczysz jak oni to robią.
Go to the top of the page
+Quote Post
marcini82
post
Post #5





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Wlasnie zaczalem myslec nad wykorzystaniem Pear DB zamiast mojej klasy. Ale to by wymagalo przerobki tego, co juz napisalem sad.gif

Zastanawia mnie czemu nie dziala to co jest, w koncu pobierzWiersz() zwraca to, co zwraca pg_fetch_array(), wiec dlaczego nie zwraca tez false jesli wiersze sie skoncza?

A co do abstrakcji, czy Pear DB byloby dobrym wyborem? Nie mam z tym doswiadczenia a nie chcialbym sie znow w cos wpakowac. Tym bardziej ze goni mnie czas.
Go to the top of the page
+Quote Post
anopak
post
Post #6





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.10.2004
Skąd: Rybnik

Ostrzeżenie: (0%)
-----


jeżeli masz cały system oparty na swojej klasie i nie chcesz go w całości przebudowywać to pobierz sobie AdoDB i napisz rozrzeszenie, dzięki któremu będize wstanie korzystać z AdoDB z zachowanie całego kodu... Miałem podobnie, pisałem klase do obsługi MySQL, aż doszedłem do momentu, kiedy to lepiej mi było się przesiąść na AdoDB i tam rozwijać ewentualne rzeczy których potrzebuję.
Przykład tworzenia modułu na podstawie AdoDB Lite


--------------------
Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox
Go to the top of the page
+Quote Post
marcini82
post
Post #7





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


No wlasnie, a jak wypada porownanie Pear DB i AdoDB? Bo zadnych konkretnych i sensownych stwierdzen nie znalazlem. Czy cos przemawia mocno na korzysc jednej biblioteki?

Ten post edytował marcini82 22.02.2006, 11:33:56
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 04:29