<small id='1DiY4'></small><noframes id='1DiY4'>

    <legend id='1DiY4'><style id='1DiY4'><dir id='1DiY4'><q id='1DiY4'></q></dir></style></legend>

    1. <tfoot id='1DiY4'></tfoot>
      • <bdo id='1DiY4'></bdo><ul id='1DiY4'></ul>
        <i id='1DiY4'><tr id='1DiY4'><dt id='1DiY4'><q id='1DiY4'><span id='1DiY4'><b id='1DiY4'><form id='1DiY4'><ins id='1DiY4'></ins><ul id='1DiY4'></ul><sub id='1DiY4'></sub></form><legend id='1DiY4'></legend><bdo id='1DiY4'><pre id='1DiY4'><center id='1DiY4'></center></pre></bdo></b><th id='1DiY4'></th></span></q></dt></tr></i><div id='1DiY4'><tfoot id='1DiY4'></tfoot><dl id='1DiY4'><fieldset id='1DiY4'></fieldset></dl></div>

      1. MySQLI 28000/1045 用户“root"@“localhost"的访问

        时间:2023-09-25
          <tbody id='4sLg2'></tbody>
            <bdo id='4sLg2'></bdo><ul id='4sLg2'></ul>

              <legend id='4sLg2'><style id='4sLg2'><dir id='4sLg2'><q id='4sLg2'></q></dir></style></legend>
              <i id='4sLg2'><tr id='4sLg2'><dt id='4sLg2'><q id='4sLg2'><span id='4sLg2'><b id='4sLg2'><form id='4sLg2'><ins id='4sLg2'></ins><ul id='4sLg2'></ul><sub id='4sLg2'></sub></form><legend id='4sLg2'></legend><bdo id='4sLg2'><pre id='4sLg2'><center id='4sLg2'></center></pre></bdo></b><th id='4sLg2'></th></span></q></dt></tr></i><div id='4sLg2'><tfoot id='4sLg2'></tfoot><dl id='4sLg2'><fieldset id='4sLg2'></fieldset></dl></div>

              1. <tfoot id='4sLg2'></tfoot>

                  <small id='4sLg2'></small><noframes id='4sLg2'>

                  本文介绍了MySQLI 28000/1045 用户“root"@“localhost"的访问被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我遇到了一些麻烦.因此,我尝试使用 MySQLi 连接到我的数据库,但出现此错误:

                  I am having some trouble. So I am trying to connect to my database using MySQLi, but I am getting this error:

                  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.

                  . I have no idea why it says "root" as the user, my code is below. I can login to PHPMyAdmin with that info fine.

                  <?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 文件:

                  Here is my global.php file:

                  <?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:

                  Here is 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;
                      }
                  

                  您没有将参数传递给 Users.__construct($db)

                  You are not passing a parameter to Users.__construct($db)

                  用凭据定义一个数组并通过如下:

                  Define an array with credentials and pass is like this:

                  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 变量而不是像我一样在本地定义它.但是你必须在创建用户对象时将它传递给构造函数.

                  Or use a global $db variable instead of defining it locally, like I did. But you must pass it to constructor when creating Users object.

                  $users = new Users($database);
                  

                  我想,应该是:

                  $users = new Users($db);
                  

                  如果在该文件中定义了 $db.

                  If $db is defined in that file.

                  这篇关于MySQLI 28000/1045 用户“root"@“localhost"的访问被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:在 PHP 上连接 MySQL 下一篇:Php mysql pdo 查询:用查询结果填充变量

                  相关文章

                  最新文章

                    <bdo id='t5nKE'></bdo><ul id='t5nKE'></ul>
                  <i id='t5nKE'><tr id='t5nKE'><dt id='t5nKE'><q id='t5nKE'><span id='t5nKE'><b id='t5nKE'><form id='t5nKE'><ins id='t5nKE'></ins><ul id='t5nKE'></ul><sub id='t5nKE'></sub></form><legend id='t5nKE'></legend><bdo id='t5nKE'><pre id='t5nKE'><center id='t5nKE'></center></pre></bdo></b><th id='t5nKE'></th></span></q></dt></tr></i><div id='t5nKE'><tfoot id='t5nKE'></tfoot><dl id='t5nKE'><fieldset id='t5nKE'></fieldset></dl></div>
                    <tfoot id='t5nKE'></tfoot>
                  1. <small id='t5nKE'></small><noframes id='t5nKE'>

                      <legend id='t5nKE'><style id='t5nKE'><dir id='t5nKE'><q id='t5nKE'></q></dir></style></legend>