Chuyển nó vào chính phương thức
Bạn phải chuyển đối tượng cơ sở dữ liệu cho phương thức, vì chúng không ở cùng phạm vi:
function runQuery($mysqli)
và gọi nó như
$a = new theClass;
$a->runQuery($mysqli);
Chuyển nó cho hàm tạo
Nếu lớp của bạn thực hiện nhiều lệnh gọi cơ sở dữ liệu, bạn có thể chỉ cần chuyển nó vào hàm tạo và lưu nó dưới dạng biến riêng để sử dụng sau này:
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>";
}
}
};
và gọi nó như
$a = new theClass($mysqli);
$a->runQuery();
Cả hai phương pháp đều làm rõ rằng lớp phụ thuộc của bạn là một đối tượng mysqli, rất tốt cho việc bảo trì và dễ đọc trong tương lai.