Stai sbagliando, o meglio stai programmando in OOP ma non correttamente.
Le variabili locali di un metodo di una classe, non diventano automaticamente variabili della classe (cioè non puoi accedergli con $this->nomevar).
Inoltre, ti suggerisco di usare i
metodi speciali (magic methods), in modo particolare __construct e __destruct
Codice PHP:
class database {
// Proprietà della classe
private $hostname = "localhost";
private $username = "*************";
private $password = "*************";
private $database = "*************";
private $mysqli;
// Metodo di connessione
public function __construct() {
$this->mysqli = new mysqli($this->hostname, $this->username, $this->password, $this->database);
if ($this->mysqli->connect_errno) {
echo "Connessione al database Mysql fallita: (" . $this->mysqli->connect_errno . ") " . $this->mysqli->connect_error;
} else {
echo $this->mysqli->host_info . "\n";
}
}
public function __destruct() {
$this->mysqli->close();
}
// Metodo per l'esecuzione delle query
// Metodo per l'estrazione dei record
// Metodo per l'inserimento dei record
}
A questo punto, invochi la classe che si occuperà di aprire e chiudere la connessione al database:
Codice PHP:
$db = new dabatase();
// operazioni su db
Quando php non noterà più referenze alla tua classe nello script, chiamerà il metodo __destruct che chiuderà la connessione.