メソッド自体に渡します
同じスコープにないため、データベースオブジェクトをメソッドに渡す必要があります。
function runQuery($mysqli)
のように呼んでください
$a = new theClass;
$a->runQuery($mysqli);
コンストラクターに渡します
クラスが多くのデータベース呼び出しを行う場合は、それをコンストラクターに渡して、後で使用するためにプライベート変数として保存するだけです。
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>";
}
}
};
のように呼んでください
$a = new theClass($mysqli);
$a->runQuery();
どちらの方法でも、クラスの依存関係がmysqliオブジェクトであることが明確になります。これは、将来の保守と可読性に適しています。