Подключение к базе в php 7.4 в нутри в function
такой вопрос есть задача перевести сайт с пхп 5.4 на 7.4 и все вроде сделал, все вроде работает кроме кода в function { } Дело в том что тот кто писал скрипт, писал его на пхп 5, и понаписал сотни function { } внутри в которых делает запросы в базу, в 5 пхп все работает однако в 7 версии пхп внутри функции не работает соединение с базой, как я понял потому что функции изолированы, даже инклуд не работает я не могу даже заинклудить файл с подключением к БД, внутри в function { }, работает только единственный вариант если там внутри прописать наново соединение с базой. Вопрос такой, существует ли способ как то подключить базу в нутри в function { } кроме как прописать там наново соединение, так как переписывать пол скрипта выносить это все за приделы функций я наверное сума сойду))). Спасибо на добром совете.
Ответы (1 шт):
Я тут вижу два варианта
передача соединения с базой данных в качестве параметра в функцию
function myFunction($db) {
// использовать $db для выполнения запросов к базе данных
}
// создать соединение с базой данных
$db = mysqli_connect("localhost", "username", "password", "database");
// вызвать функцию, передав соединение с базой данных в качестве параметра
myFunction($db);
Если у вас много функций, которые нуждаются в доступе к базе данных, вы можете создать класс, который будет обрабатывать подключение к базе данных, и передавать экземпляр этого класса
class Database {
private $connection;
public function __construct($host, $username, $password, $database) {
$this->connection = mysqli_connect($host, $username, $password, $database);
}
public function query($sql) {
return mysqli_query($this->connection, $sql);
}
}
function myFunction(Database $db) {
// использовать $db для выполнения запросов к базе данных
}
// создать экземпляр класса Database
$db = new Database("localhost", "username", "password", "database");
// вызвать функцию, передав экземпляр класса Database в качестве параметра
myFunction($db);