Почему возникает ошибка подключения к базе?

Какой то бред. Если указываю логин root в прямо то подключается. А если передаю через переменную то получаю ошибку вот такую Warning: mysqli_connect(): (HY000/1045): Access denied for user ''@'localhost' (using password: NO) in C:\openserver\OSPanel\domains\darkdate\www\modules\config.php on line 9
кто может сказать в чем дело?
так работает
5a9d7687007bd617733178.jpeg
а так ошибку выдает
5a9d76a4c793a674180945.jpeg
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
Immortal_pony
@Immortal_pony
У вас переменные объявлены за пределами функции.
Есть три варианта решения:

1. Функция должна аргументы принимать, а при вызове вы будете их передавать (рекомендуется):
function connect($server, $login, $password, $db) {
    return mysqli_connect($server, $login, $password, $db)
}

$connection = connect($server, $login, $password, $db);


2. Функция будет извлекать переменные из глобальной области видимости:
function connect() {
    global $server;
    global $login;        
    global $password;
    global $db;

    return mysqli_connect($server, $login, $password, $db);
}

$connection = connect($server, $login, $password, $db)


3. Функция будет анонимной и извлекать данные из локальной области видимости:
$connect = function() use ($server, $login, $password, $db) {
    return mysqli_connect($server, $login, $password, $db);
};

$connection = $connect();


PS При создании вопросов копируйте код, а не вставляйте скриншоты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
от 2 000 до 4 000 usd.
HTML Academy Санкт-Петербург
от 130 000 до 140 000 руб.
Duotek Москва
До 120 000 руб.