Transmettez-le à la méthode elle-même
Vous devez passer l'objet de la base de données à la méthode, car ils ne sont pas dans la même portée :
function runQuery($mysqli)
et appelez-le comme
$a = new theClass;
$a->runQuery($mysqli);
Passez-le au constructeur
Si votre classe effectue de nombreux appels à la base de données, vous pouvez simplement la transmettre au constructeur et l'enregistrer en tant que variable privée pour une utilisation ultérieure :
class theClass
{
private $mysqli;
function __construct($mysqli) {
$this->mysqli = $mysqli;
}
function runQuery()
{
$query = "SELECT col_1 FROM db.table";
$stmt = $this->mysqli->prepare($query);
stmt->execute();
$stmt->bind_result($r);
while($stmt->fetch())
{
echo $r . "<br>";
}
}
};
et appelez-le comme
$a = new theClass($mysqli);
$a->runQuery();
Les deux méthodes indiquent clairement que la dépendance de votre classe est un objet mysqli, ce qui est bon pour la maintenance et la lisibilité futures.