Intereting Posts
Как конвертировать PST в GMT в php? Как создать ссылку, которая отправляет пользователя на другую страницу, которая затем перенаправляется на другую страницу, связанную со ссылкой? Зачем использовать автосоздание PSR-0 или PSR-4 в компоновщике, если classmap на самом деле быстрее? Ошибка CakePHP: вызов функции-члена getColumnType () Как читать «,» как «<br />» в PHP / MySQL? Как щелчок кнопки может изменить содержимое раскрывающегося меню? API Youtube: загрузка видео на определенный канал PHP-форма для MySQL-Array в MySQL-проблема Загрузите много файлов на клиентской стороне и сжимайте их, затем загрузите файл сжатия на сервер Проводка с локального веб-сайта html / javascript в онлайн-файл PHP Как отсортировать массив даты в PHP Как создать динамический URL-адрес страницы? curl command return http / 1.1 406 недопустимая ошибка Есть ли у PHP структуры или перечисления, а если нет, то какая из них лучшая для них? Как реализовать кэш PHP / HTML

MySQLI 28000/1045 Доступ запрещен для пользователя 'root' @ 'localhost'

У меня проблемы. Поэтому я пытаюсь подключиться к моей базе данных с помощью MySQLi, но я получаю эту ошибку:

Warning: mysqli::mysqli(): (28000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /home/venge/public_html/library/classes/database.class.php on line 16 Warning: Missing argument 1 for Users::__construct(), called in /home/venge/public_html/routing.php on line 4 and defined in /home/venge/public_html/library/classes/users.class.php on line 3 Warning: mysqli::mysqli(): (28000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /home/venge/public_html/library/classes/database.class.php on line 16 Warning: Cannot modify header information - headers already sent by (output started at /home/venge/public_html/library/classes/database.class.php:16) in /home/venge/public_html/routing.php on line 11 

, Я понятия не имею, почему он говорит «root» как пользователь, мой код ниже. Я могу войти в PHPMyAdmin с этой информацией.

 <?php $db['host'] = 'localhost'; $db['user'] = 'venge_main'; $db['pass'] = 'fakepassword'; $db['name'] = 'venge_panel'; class DB { function __construct($db) { $this->mysqli = new mysqli($db['host'], $db['user'], $db['pass'], $db['name']); } function query($i) { return $this->mysqli->query($i); } function fetch_array($i) { return $i->fetch_array(MYSQLI_ASSOC); } function num($i) { return $i->num_rows; } } ?> 

Вот мой файл global.php:

 <?php session_start(); $venge['library'] = 'library/classes/'; include_once($venge['library'] . 'users.class.php'); include_once($venge['library'] . 'database.class.php'); $users = new Users($database); ?> 

Вот мой класс пользователей:

 <?php class Users { public function __construct($db) { $this->db = new DB($db); } public function uidset() { if (isset($_SESSION['uid'])) { return true; } else { return false; } } public function securitycheck() { if (isset($_SESSION['uid'])) { //passed return true; } else { //failed die('No permissions'); } } } ?> 

Вот routing.php:

 <?php class Routing { public function __construct($route) { $this->users = new Users(); $this->route = $route; } public function File() { if (!$this->users->uidset()) { switch ($this->route) { default: header("Location: /user/login"); break; case '/user/login': include_once('library/pages/login.page.php'); break; } } else { switch ($this->route) { default: header("Location: /venge"); break; case '/venge': echo 'Welcome to <strong>Venge</strong> .'; break; } } } } $route = new Routing($_SERVER['ORIG_PATH_INFO']); $route->File(); ?> 

Причина ошибки здесь:

 class Routing { public function __construct($route) { $this->users = new Users();//<-? $this->route = $route; } 

Вы не передаете параметр пользователям .__ construct ($ db)

Определите массив с учетными данными и передайте так:

 class Routing { public function __construct($route) { $db = array(); $db['host'] = 'localhost'; $db['user'] = 'venge_main'; $db['pass'] = 'fakepassword'; $db['name'] = 'venge_panel'; $this->users = new Users($db); $this->route = $route; } 

Или используйте глобальную переменную $ db вместо ее локального определения, как и я. Но при создании объекта «Пользователи» вы должны передать его конструктору.

Ошибка в global.php

 $users = new Users($database); 

Я думаю, это должно быть:

 $users = new Users($db); 

Если в этом файле задано $ db.

Обычно это означает, что один из ваших host , database , user или password неверен.

В моем случае это был host , я обычно использую localhost, но на этот раз я видел в своих cPanel > MySQL® Databases что я не должен использовать localhost и istead, я должен использовать mysql5.xxxxxxx.net.

Это сообщение помогло мне:

Адрес сервера mysql – mysql5.xxxxxxxx.net. При подключении к серверу mysql вы должны указать этот узел.