Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa do obsługi bazy danych...poprawcie
Joachim Peters
post
Post #1





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

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


Od niedawna dopiero zaczełem interesować się php5 i dzisiaj napisałem sobie taką klase do obsługi bazy danych:

  1. <?php
  2. class DB 
  3. {
  4.  private $dbc;
  5.  public $sql_queries = 0;
  6.  
  7.  public function __construct($db_user, $db_name, $db_pass, $db_host)
  8.  {
  9.  $this->dbc = @mysql_connect($db_host, $db_user, $db_pass) OR die ('Nie mogłem połączyć się z MySQL-em: ' . mysql_error() );
  10.  @mysql_select_db($db_name) OR die ('Nie udało mi się wybrać bazy danych: ' . mysql_error() );
  11.  }
  12.  
  13.  public function query($sql) 
  14.  {
  15.  $this->sql_queries++; 
  16.  return @mysql_query($sql);
  17.  }
  18.  
  19.  public function fetch($result) 
  20.  {
  21.  return mysql_fetch_array($result);
  22.  }
  23.  
  24.  public function show_query() 
  25.  {
  26.  print "<br />Zapytań SQL: <b>{$this->sql_queries}</b>";
  27.  }
  28.  
  29. }
  30. ?>


i przykład:

  1. <?php
  2. $db = new DB('root', 'user', 'pass', 'localhost');
  3.  
  4. $sql = "SELECT * FROM table";
  5. $result = $db->query($sql);
  6.  
  7. while($row = $db->fetch($result)) 
  8. {
  9. echo $row['cos'];
  10. }
  11.  
  12. $db->show_query();
  13. ?>


tak jak pisałem wyżej, dopiero zaczynam z php5 więć moge robić błędy...proszę o pisanie co jest w tej klasie żle napisane i uwagi co moge dodać.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pawel_k
post
Post #2





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

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


najlepiej zmienna ktora zwraca mysql_query trzymaj w klasie lub zwracaj obiekt na ktorym bedziesz robil fetch() (lub false gdy zle zapytanie), inaczej nie masz pewnosci ze metoda fetch sie wykona bez wywalania bladow...

poza tym brak przenoszalnosci pomiedzy bazami...

dalej to robienie die() gdy nie ma polaczenia z baza...

do tego dorzucilbym jeszcze przejscie na singletona (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

a tak btw. to lepiej zainteresowac sie gotowym rozwiazaniem, polecam creole (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował pawel_k 9.08.2006, 10:39:51
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 23.10.2025 - 12:07