Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Utknąłem na obsłudze baz danych
Forti
post
Post #1





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Witam

Od pewnego czasu samodzielnie ucze się php, napisałem pewną obszerną strone strukturalnie - działa fajnie ale straszny bałagan w kodzie.. Teraz zaczałem uczyć się oop i mvc, przeczytałem mase teorii, staram się przeglądać przykłady (skrypty phpbb3 czy smf to jakaś porażka z kodu dla mnie..) i poległem na prostych rzeczach, tak prostych, że aż zły jestem ^^ od wczoraj szukam rozwiązania i nie bardzo wiem w co uderzyć..

kod pliku models/config.class.php

  1. <?php
  2. if(!defined("access"))
  3. {
  4. include("errors/access.html");
  5. exit();
  6. }
  7. /**
  8. *
  9. * połączenie z bazą danych
  10. *
  11. */
  12. try
  13. {
  14. $baza = new PDO('mysql:host=localhost;dbname=forti_arturs;charset=utf8', 'forti', 'Schroeder78');
  15. }
  16. catch(PDOException $e)
  17. {
  18. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  19. }
  20.  
  21.  
  22. class config {
  23.  
  24. public function load_config($tabela) {
  25. global $baza;
  26.  
  27. try
  28. {
  29. $cms_config_request = $baza->query("SELECT * FROM '$tabela'");
  30. $this -> $cms_config = $cms_config_request->fetch();
  31. return $this -> $cms_config;
  32. }
  33. catch(Exception $exception)
  34. {
  35. echo 'Nie można pobrać danych z bazy '.$tabela.' '.$exception ->getMessage().'';
  36. }
  37. }
  38. }
  39. ?>



i mam problem w klasie config.. wiem że load_config jest kompletnie źle napisane..

wywołanie tego w pliku index.php (później przeniosę to do kontrolera):

  1. <?php
  2.  
  3. define("access", true);
  4.  
  5. require_once("models/config.class.php");
  6.  
  7. /**
  8. *
  9. * ładujemy domyślny styl strony
  10. *
  11. */
  12. $cms_config = config::load_config(cms_config);
  13.  
  14.  
  15. include("views/{$cms_config["cms_style"]}/index.php");
  16.  
  17. ?>



wiem, że config::load_config i klasa config wogóle ze sobą nie współgrają i że całość tego to jakiś kompletny bajzel nad którym część z was się uśmieje (IMG:style_emoticons/default/wink.gif)

Co chce osiągnąć: zwrócić tabele cms_config w postaci oczywiście tablicy.

siedzę nad tym od dłuższej chwili i jedyne co potrafie zrobić to pobieranie tej tabeli wyciągnąć poza klase.. -,-



edit:
serwer zwraca mi błąd:
Fatal error: Call to a member function fetch() on a non-object in /home/forti/domains/arturs.pl/public_html/models/config.class.php on line 30

wiem co on oznacza ale nie mam pojęcia jak to rozgryść inaczej.

Ten post edytował Forti 9.09.2014, 10:30:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




No i teraz sobie wyobraz, ze klasa bazy zawsze w konstruktorze generuje połączenie do bazy.
Odpalasz 5 modeli w czasie jednego żądania a przez co odpalasz 5 połączen do bazy. NIe ma to zadnego sensu.

Klasa bazy to klasa bazy. Model moze miec dostep do metod klasy bazy poprzez posiadanie jej obiektu. To wystarczy.
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: 11.10.2025 - 09:07