两个或多个mysqli连接同时抛出Access Denied错误

时间:2014-11-05 19:14:41

标签: php mysqli database-connection

我收到此错误拒绝访问用户'用户' @' localhost' (使用密码:否) 当我在同一个脚本中打开第二个mysqli连接时。

我有一个有2个属性(Subclasses)的类。这两个属性都从DataBase类扩展(它创建了一个新的mysqli连接)。在这个子条款实例化的那一刻,我得到了Access denied错误。

有没有办法建立两个mysqli连接或者我的逻辑是错误的,一个类有这样的2个子类?

我希望我能解释一下自己。提前致谢

2 个答案:

答案 0 :(得分:1)

没有理由我能想到打开2个连接到同一个数据库服务器。您应该创建连接并将其作为参数传递给函数。

$mysqli = new mysqli('localhost', 'username', 'password', 'database');

class Foo {
      /** @var \mysqli */
      protected $db;

      public function __construct(mysqli $mysqli) {
           $this->db = $mysqli;
      }

      public function bar() {
           $res = $this->db->query('SELECT * FROM table');
           $data = array();
           while($row = $res->fetch_assoc()) $data[] = $row;
           return $data;
      }
}

$class = new Foo($mysqli);

答案 1 :(得分:0)

检查max_user_connections文件上的my.cfg

  
      
  • max_user_connections

         

    允许任何给定MySQL用户帐户的最大并发连接数。值0(默认值)表示“无限制”。

         

    此变量具有可在服务器启动或运行时设置的全局值。它还具有只读会话值,该值指示适用于与当前会话关联的帐户的有效同时连接限制。会话值初始化如下:

         

    如果用户帐户的资源限制为非零MAX_USER_CONNECTIONS,则会话max_user_connections值将设置为该限制。

         

    否则,会话max_user_connections值将设置为全局值。

  •