Rieccomi! Chiarissimi i concetti di public e private adesso, ma sto continuando a sviscerare quello che ho imparato con le classi. Tra l'altro sono passato (finalmente) a MYSQLI
Ho aggiunto un metodo alla classe, e nel modo seguente funziona bene:
Codice PHP:
class DBconnect {
// proprietà o membri
private $host = "nomehost";
private $login = "login";
private $pass = "pass";
private $db = "nomedb";
public $mysqli;
// metodi
public function db_connection() {
$this->mysqli = new mysqli($this->host, $this->login, $this->pass, $this->db);
if ($this->mysqli->connect_errno) {
echo 'Errore di connessione al DB ' . $this->mysqli->connect_error;
exit();
}
}
public function get_surnames() {
$this->mysqli = new mysqli($this->host, $this->login, $this->pass, $this->db);
if ($this->mysqli->connect_errno) {
echo 'Errore di connessione al DB ' . $this->mysqli->connect_error;
exit();
}
$query = 'SELECT * FROM people';
$result = $this->mysqli->query($query);
if ($result->num_rows > 0) {
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
echo $row['people_cognome'] . '
';
}
} else {
echo 'Non ci sono record da mostrare!';
}
}
}
$cognomi = new DBconnect();
$cognomi->get_surnames();
Ma vi chiedo una cosa: come mai, se uso quest'altro metodo non funziona?
Codice PHP:
class DBconnect {
// proprietà o membri
private $host = "nomehost";
private $login = "login";
private $pass = "pass";
private $db = "nomedb";
public $mysqli;
// metodi
public function db_connection() {
$this->mysqli = new mysqli($this->host, $this->login, $this->pass, $this->db);
if ($this->mysqli->connect_errno) {
echo 'Errore di connessione al DB ' . $this->mysqli->connect_error;
exit();
}
}
public function get_surnames() {
$query = 'SELECT * FROM people';
$result = $this->mysqli->query($query);
if ($result->num_rows > 0) {
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
echo $row['people_cognome'] . '
';
}
} else {
echo 'Non ci sono record da mostrare!';
}
}
}
$cognomi = new DBconnect();
$cognomi->get_surnames();
Mi appare il seguente errore:
codice:
Fatal error: Call to a member function query() on a non-object in /Applications/MAMP/htdocs/NUOVO/cap 11/prova_mysqli.php on line 24
Grazie in anticipo per le risposte e, soprattutto, per la comprensione