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);
}
}
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?