Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] Problem z klasą
Setesh
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Witam.

Mam do was prośbę - chcę wrzucić do klasy wszystkie ważniejsze odwołania do MySQL'a ale mam problem z samą funkcją połączenia się z bazą danych. Nie mogę coś napisać tego. O ile sama funkcja działa o tyle w klasie już coś nie chce. Możecie mi z tym pomóc ? Będę bardzo wdzięczny (IMG:style_emoticons/default/smile.gif)

  1.  
  2. <?php
  3.  
  4. class BazaMySQL
  5. {
  6. // Konstruktor
  7. function BazaMySQL()
  8. {
  9. $this->DB_Connect('Nazwa_bazy'); // Nie chce się odwołać do funkcji :(
  10. }
  11.  
  12. }
  13.  
  14. // Chciałem dodać rozszerzenie do klasy - jako funkcję używaną tylko przez klasę - niestety nie działa :(
  15.  
  16. class BazaMain extends BazaMySQL
  17. {
  18. protected $HostAddr = '127.0.0.1';
  19. protected $UserName = 'baza_admin';
  20. protected $UserPassword = 'baza_password';
  21. protected $UserDefaultDataBase = 'Nazwa_bazy';
  22.  
  23. protected $MYSQL_ERRNO = '';
  24. protected $MYSQL_ERROR = '';
  25.  
  26.  
  27. public function DB_Connect($DataBaseName)
  28. {
  29. global $link_id;
  30. echo "wywolana z<br>";
  31. $link_id = mysql_connect($HostAddr, $UserName, $UserPassword);
  32. if(!$link_id)
  33. {
  34. $MYSQL_ERRNO = 0;
  35. $MYSQL_ERROR = "Connection failed to the host $HostAddr.";
  36. return 0;
  37. }else if(empty($DataBaseName) && !mysql_select_db($UserDefaultDataBase))
  38. {
  39. $MYSQL_ERRNO = mysql_errno();
  40. $MYSQL_ERROR = mysql_error();
  41. return 0;
  42. }else if(!empty($DataBaseName) && !mysql_select_db($DataBaseName))
  43. {
  44. $MYSQL_ERRNO = mysql_errno();
  45. $MYSQL_ERROR = mysql_error();
  46. return 0;
  47. }else return $link_id;
  48. }
  49.  
  50. }
  51. ?>
  52.  
  53.  


Ogólnie to chciałem aby stworzyć bezpieczne logowanie się do serwera mysql i tak aby nikt niepowołany nie mógł wywołać z zewnątrz klasy funkcji DB_Connect - niestety moje starania na nic się nie zdały pomimo iż rozszerzenie klasy jest napisane poprawnie (no może jakiś błąd w deklaracji funkcji w rozszerzeniu klasy)

Ewentualnie jeżeli możecie mi doradzić jak co zmienić aby było bezpieczniejsze i co źle robię w tym przykładzie (IMG:style_emoticons/default/sad.gif)

Ten post edytował Setesh 29.01.2011, 23:41:35
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: 22.12.2025 - 23:37