Если у меня в приложении php есть объект, который подключается к базе данных, скажем, я использую mysqli как объект для транзакций с базой данных.
пример:
$dbase = new mysqli('localhost','dbuser','dbpass','dbname');
$oresult = $dbase->query("SELECT `field` FROM `table` WHERE `otherfield` = 12;");
if($oresult->num_rows > 0) {
$row = $oresult->fetch_row();
$data = $row[0];
}
но у меня есть другой объект, с которым я хочу поговорить с базой данных.
<?php
class Thing {
private $sql = '';
public $results = '';
public function __construct($sql) {
$this->sql = $sql;
$this->get_data();
}
private function get_data() {
// get the stuff from the dbase using $this->sql
$this->results = 'whatever';
}
}
$thing = new Thing("SELECT `field` FROM `table` WHERE 1");
// do whatever i want with $thing->results
?>
Где у меня есть строка «// получить материал из базы данных, используя $ this-> sql», я бы хотел подключиться к базе данных и получить данные.
Лучше ли создать новый объект mysqli (с которым я вижу проблемы, потому что мне нужно будет передать информацию о соединении каждому имеющемуся у меня объекту) или я могу как-то ссылаться на уже существующий объект, используя
global $dbase
внутри функции get_data.
Какая лучшая практика?