Я сделаю все возможное, чтобы объяснить процесс, на который рассчитывали, используя код и возникновение ошибки.
Сначала я создаю базу данных для каждого участника, который присоединяется и хочет хранить информацию. Итак, у меня есть первое соединение, чтобы проверить сеанс, войти в систему и сохранить имя пользователя, после чего я заканчиваю соединение. Следующее соединение идет в корень, чтобы создать пользователя и базу данных в SQL. После этого я пробую третье соединение и получаю следующую ошибку
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'DB_USERNAME'@'localhost' (using password: YES) in C:\xampp\htdocs\managementportal.php on line 38
ERROR: Could not connect. Access denied for user 'DB_USERNAME'@'localhost' (using password: YES)
Похоже, что sql-запрос не работает таким образом, что создает пользователя / базу данных, и поэтому нет ничего для соединения, что автоматически выдает ошибку соединения.
PHP-код
<?php
$link = mysqli_connect("localhost", "php", "test", "php");
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
session_start();
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
header("location: members.php");
exit;
}
$username = trim($_SESSION['username']);
mysqli_close($link);
$slink = mysqli_connect('localhost', 'root', '');
define('DB_SERVER', 'localhost');
define('DB_USERNAME', '$username');
define('DB_PASSWORD', 'test');
define('DB_NAME', '$username');
$createdb = "CREATE USER IF NOT EXISTS 'DB_USERNAME'@'localhost' IDENTIFIED VIA mysql_native_password using 'DB_PASSWORD';
GRANT ALL PRIVELGES ON *.* TO 'DB_USERNAME'@'localhost'
REQUIRE NONE WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS 'DB_NAME'; GRANT ALL PRIVILEGES ON 'DB_USERNAME' *.* TO 'DB_USERNAME'@'localhost'; " ;
mysqli_query($slink, $createdb);
mysqli_close($slink);
$ulink = mysqli_connect('localhost', 'DB_USERNAME', 'DB_PASSWORD', 'DB_NAME');
if($ulink === false){
die("ERROR: Could not connect. " . mysqli_connect_error($ulink));
}
?>