Сделать другие функции доступными к переменной $conn внутри моей функции подключения к базе данных
Итак, я абсолютно отчаянно пытаюсь заставить что-то работать. Я знаю, что я пытаюсь сделать, это не ООП, а 100% лучшая практика. Это не для живого веб-сайта, я просто изучаю некоторые основные понятия PHP на XAMPP.
Я пытаюсь сделать, чтобы сделать переменную $conn внутри моей функции подключения к базе данных доступной для всех других функций, которые ей нужны. Я думаю передать его как параметр , но как это можно сделать? Я предпочитаю не использовать PHP "global" или $GLOBALS. Мой метод работы прямо сейчас с mysqli с использованием процедурных методов.
Например, у меня есть что-то вроде этого:
function db () {
$conn = mysqli_connect ("localhost", "root", "", "database");
}
function someFunction () {
$result = mysqli_query ($conn, "SELECT * FROM examples)
}
Я не нашел ответа на мою проблему... большинство решений, с которыми я недавно познакомился, основаны на ООП или используют несколько сомнительных методов.
----------------------------------------------- -------------------------------------------------- -----------------------------------
РЕШЕНИЕ A - Я бы предпочел избегать использования моего соединения в оболочке и использования глобальных переменных:
global $conn = mysqli_connect ("localhost", "root", "", "database");
global $conn;
function someFunction () {
global $conn;
$result = mysqli_query ($conn, "SELECT * FROM examples)
}
РЕШЕНИЕ B - Я еще не готов к ООП, но я знаю, что это работает. Дело в том, что я хочу узнать что-то другое:
class Database
{
private static $conn;
public static function getObject()
{
if (!self::$conn)
self::$conn = new mysqli("localhost", "root", "", "database");
return self::$conn;
}
}
function someFunction () {
$result = mysqli_query (Database::$conn, "SELECT * FROM examples)
}
РЕШЕНИЕ C - Не использовать функции вообще... просто не разворачивая ее, что я не нахожу очень практичным в долгосрочной перспективе:
$conn = mysqli_connect ("localhost", "root", "", "database");
$result = mysqli_query ($conn, "SELECT * FROM examples)
----------------------------------------------- -------------------------------------------------- -----------------------------------
РЕШЕНИЕ Я ПЫТАЮСЬ ДОСТИГАТЬ:
function db () {
$conn = mysqli_connect ("localhost", "root", "", "database");
return $conn;
}
function someFunction () {
$conn = db ();
$result = mysqli_query ($conn, "SELECT * FROM examples)
}
ИЛИ Что-то вроде этого, где я просто передаю соединение как параметр или что-то (псевдокод на данный момент)
function db () {
$conn = mysqli_connect ("localhost", "root", "", "database");
}
function someFunction ($conn) {
$result = mysqli_query ($conn, "SELECT * FROM examples)
}
----------------------------------------------- -------------------------------------------------- -----------------------------------
Итак, как мне достичь чего-то вроде двух последних, но на самом деле работает. Возможна ли эта концепция?