我收到此错误拒绝访问用户'用户' @' localhost' (使用密码:否) 当我在同一个脚本中打开第二个mysqli连接时。
我有一个有2个属性(Subclasses)的类。这两个属性都从DataBase类扩展(它创建了一个新的mysqli连接)。在这个子条款实例化的那一刻,我得到了Access denied错误。
有没有办法建立两个mysqli连接或者我的逻辑是错误的,一个类有这样的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
。
允许任何给定MySQL用户帐户的最大并发连接数。值0(默认值)表示“无限制”。
此变量具有可在服务器启动或运行时设置的全局值。它还具有只读会话值,该值指示适用于与当前会话关联的帐户的有效同时连接限制。会话值初始化如下:
如果用户帐户的资源限制为非零
MAX_USER_CONNECTIONS
,则会话max_user_connections值将设置为该限制。否则,会话max_user_connections值将设置为全局值。