Sorki że wracam do tego tematu, ale wyczarowałem pewny kod, a dokładnie wykorzystanie klasy sqli w klasie user i chciałem się dowiedzieć czy dobrze to zrobiłem. Oto kod:
<?php
class sqli
{
//Konstruktor
public function __construct($host,$login,$haslo,$baza)
{
$this->mysqli=new mysqli($host,$login,$haslo,$baza);
}
public function getRow($query)
{
return $this->mysqli->query($this->query=$query)->fetch_object();
}
// Pobranie danych z bazy
public function getRows($query)
{
$result=$this->mysqli->query($this->query=$query);
while($wynik=$result->fetch_object()){
$data[]=$wynik;
}
return $data;
/* $rows=$sqli->getRows("select * from users");
foreach($rows as $row)
{
echo $row->log.' | '.$row->pass;
}
*/
}
//Dodawania wartości do bazy danych
public function insert($query)
{
$result=$this->mysqli->query($this->query=$query);
if($result===true)
{
echo "Dane zostały dodane do tabeli!"; }
else {
echo "Wystąpił błąd podczas dodawania danych do tabeli!"; }
}
// Aktualizacja danych w bazie
public function update($query)
{
$result=$this->mysqli->query($this->query=$query);
if($result===true)
{
echo "Dane zostały zaaktualizowane!"; }
else {
echo "Wystąpił błąd podczas aktualizowania danych!"; }
}
// Kasowania z bazy danych
public function delete($query)
{
$result=$this->mysqli->query($this->query=$query);
if($result===true)
{
echo "Dane zostały usunięte!"; }
else {
echo "Wystąpił błąd podczas usuwania danych!"; }
}
// Koniec klasy
}
class User{
private $db;
public function __construct(sqli $db){
$this->db = $db;
}
public function addUser($login,$haslo){
$this->db->insert("insert into user values('$login','$haslo')");
}
}
?>
A tak go używam:
<?php
$db = new sqli('localhost','root','','spam');
$user = new User($db);
$user->addUser('adminek','adminek2');
?>
Oczywiście kod działa jak należy, tylko chodzi mi o to czy jest to poprawnie napisane. Krótko mówiąc rozumuję iż, w taki sposób jak zrobiłem powyżej, uzyskuje dostęp do klasy sqli oraz jej metod, dobrze myślę czy może się mylę? Wnioskuje to po tym że uzyskałem dostęp do metody update, która jest w klasie sqli.