![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam taką klasę: Kod class DB extends mysqli{ private static $db; public function connect(){ if(!self::$db){ self::$db = @new mysqli('localhost', 'user', 'pass', 'base'); if(@ self::$db->connect_errno){ throw new Exception('Nie można połączyć się z bazą danych.'); } }else{ return self::$db; } } public function query($zapytanie){ return self::$db->query($zapytanie); } public function prepare($zapytanie){ return self::$db->prepare($zapytanie); } } Używam jej w skrycie logowania. Na początku nie miałem w niej metod query() i prepare(). Kiedy je wywoływałem to nie zwracały obiektu. Dopisałem dwie wyżej wymienione metody i wszystko działa. Czy jednak jest to konieczne, aby tworzyć własne metody, bo przecież moja klasa DB dziedziczy po mysqli? Ten post edytował gcdreak 7.06.2009, 10:29:24 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Za pomocą tego kodu tworzysz 2 połączenia z bazą danych... Oto przykład:
Albo zrób aby DB nie dziedziczyła po mysqli i metody zostaw takie jakie są (instancję mysqli przechowuj w składowej statycznej), albo zostaw dziedziczenie i rozszerzaj metody mysqli. Następnym rozwiązaniem jest ustawienie metody connect jako statycznej (coś na wzór singletonu), aby zwracała instancję klasy DB. Ten post edytował -=Peter=- 7.06.2009, 12:10:43 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 13:12 |