Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] wywołanie function w class dla pdo
troian
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

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


Witam, jak tytył tematu jakoś źle napisałem to przepraszam ale nie wiedziałem jak go zdefiniować, oto mój problem,
mam stworzoną głowną klase
  1. class web{ ... }


wewenątrz klasy znajdują się dwie funkcje, pierwsza to connect_pdo()
  1. public static function connect_pdo()
  2. {
  3. try {
  4. $connect=new PDO('mysql:host='.host.';port='.port, user, pass);
  5. $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6. }
  7. catch(DBException $e) {
  8. exit('Blad polaczenia: ' . $e->getMessage());
  9. return false;
  10. }
  11. }


oraz druga funkcja register()
Kod
    public static function register()
    {
    (...)
    }


i tutaj napotkałem problem, wczesniej do wywołania zapytania mysql pisałem:
  1. $test_query = $connect->query("SELECT login FROM baza_1.account WHERE login='".$login."' OR email ='".$email."' LIMIT 1");


Jednak teraz taki myk nie zadziała i dlatego piszę tutaj gdyż nie bardzo wiem jak mam wykonać funkcję connect_pdo() aby wykonało mi ów zapytanie z funkcji register.
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




Skoro to jest wszystko w jednej klasie to zajrzyj do manuala i poczytaj o wlasciwosciach klasy i $this->

Ale tak czy siak masz blad logiczny, bo obiekt PDO ma byc do klasy przekazywany z zewnatrz a nie tworzony w klasie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bobek358
post
Post #3





Grupa: Zarejestrowani
Postów: 143
Pomógł: 22
Dołączył: 17.11.2007

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


Dlaczego chcesz wywoływać połączenie metodą statyczną?
Rozumiem że klasa Web jest główną klasą więc możesz śmiało utworzyć konstruktor w niej i dać tam połączenie do DB.

  1. class web {
  2. private $dbh;
  3.  
  4. public function __construct($dbHost, $dbName, $dbUser, $dbPassword)
  5. {
  6. try
  7. {
  8. $this -> dbh = new PDO("mysql:host=$dbHost;dbname=$dbName", "$dbUser", "$dbPassword", array(
  9. PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  10. $this -> dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  11.  
  12. }
  13. catch(PDOException $e)
  14. {
  15. exit('Blad polaczenia: ' . $e->getMessage());
  16. }
  17. }
  18. }


i wtedy w klasie odwołujesz się przez:

  1. $stmt = $this -> dbh -> prepare('SELECT * FROM `configurations`');
  2. $stmt -> execute();


Ten post edytował bobek358 4.08.2015, 10:30:23
Go to the top of the page
+Quote Post
troian
post
Post #4





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

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


Właśnie sam się zastanowiłem co napisałem happy.gif Rozdzieliłem to na 2 klasy, i teraz już mi wszystko działa, swoją drogą kiedy chce stosować $this-> wywala mi zawsze error nie wiem czemu :/ nawet jak skopiuje jakiś gotowy kod i wkleje to mam error.
Go to the top of the page
+Quote Post
nospor
post
Post #5





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




Jak ci sie pojawia error to moj ty mistrzu trzeba go nam pokazac.... wrozek nie ma, duze dzieci powinny juz wiedziec takie rzeczy tongue.gif

No ale strzelam: $this w static nie dziala raczej smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
troian
post
Post #6





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

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


Cytat(nospor @ 4.08.2015, 11:41:45 ) *
Jak ci sie pojawia error to moj ty mistrzu trzeba go nam pokazac.... wrozek nie ma, duze dzieci powinny juz wiedziec takie rzeczy tongue.gif

No ale strzelam: $this w static nie dziala raczej smile.gif


Problem rozwiązany smile.gif
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 - 05:06