2017-04-24 244 views
-2

我知道这是一个新手的错误,但我尝试了4个漫长的日子,我无法解决这个问题。数据库连接的基本错误

有人可以帮助我吗?

<?php 
 
class User { 
 
\t private $dbHost  = "HOST"; 
 
    private $dbUsername = "USER"; 
 
    private $dbPassword = "PASS"; 
 
    private $dbName  = "DB NAME"; 
 
\t private $userTbl = 'TABLE NAME'; 
 
\t 
 
\t function __construct(){ 
 
\t \t if(!isset($this->db)){ 
 
      // Connect to the database 
 
      $conn = new mysqli($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName); 
 
      if($conn->connect_error){ 
 
       die("Failed to connect with MySQL: " . $conn->connect_error); 
 
      }else{ 
 
       $this->db = $conn; 
 
      } 
 
     } 
 
\t } 
 
\t 
 
\t function checkUser($userData = array()){ 
 
\t \t if(!empty($userData)){ 
 
\t \t \t // Check whether user data already exists in database 
 
\t \t \t $prevQuery = "SELECT * FROM ".$this->userTbl." WHERE oauth_provider = '".$userData['oauth_provider']."' AND oauth_uid = '".$userData['oauth_uid']."'"; 
 
\t \t \t $prevResult = $this->db->query($prevQuery); 
 
\t \t \t if($prevResult->num_rows > 0){ 
 
\t \t \t \t // Update user data if already exists 
 
\t \t \t \t $query = "UPDATE ".$this->userTbl." SET first_name = '".$userData['first_name']."', last_name = '".$userData['last_name']."', email = '".$userData['email']."', gender = '".$userData['gender']."', locale = '".$userData['locale']."', picture = '".$userData['picture']."', link = '".$userData['link']."', modified = '".date("Y-m-d H:i:s")."' WHERE oauth_provider = '".$userData['oauth_provider']."' AND oauth_uid = '".$userData['oauth_uid']."'"; 
 
\t \t \t \t $update = $this->db->query($query); 
 
\t \t \t }else{ 
 
\t \t \t \t // Insert user data 
 
\t \t \t \t $query = "INSERT INTO ".$this->userTbl." SET oauth_provider = '".$userData['oauth_provider']."', oauth_uid = '".$userData['oauth_uid']."', first_name = '".$userData['first_name']."', last_name = '".$userData['last_name']."', email = '".$userData['email']."', gender = '".$userData['gender']."', locale = '".$userData['locale']."', picture = '".$userData['picture']."', link = '".$userData['link']."', created = '".date("Y-m-d H:i:s")."', modified = '".date("Y-m-d H:i:s")."'"; 
 
\t \t \t \t $insert = $this->db->query($query); 
 
\t \t \t } 
 
\t \t \t 
 
\t \t \t // Get user data from the database 
 
\t \t \t $result = $this->db->query($prevQuery); 
 
\t \t \t $userData = $result->fetch_assoc(); 
 
\t \t } 
 
\t \t 
 
\t \t // Return user data 
 
\t \t return $userData; 
 
\t } 
 
} 
 
?>

显然,代码是正确的,但是当我尝试登录它会显示这个错误:

Warning: mysqli::mysqli(): (HY000/1044): Access denied for user 'USER'@'%' to database 'DB NAME' in /var/www/html/URL/web/bbb/User.php on line 12 Failed to connect with MySQL: Access denied for user 'USER'@'%' to database 'DB NAME'

+0

你的db名称你提供的是不正确的。或用户名和密码不匹配。尝试'localhost','root',''''''你的db名称' –

回答

0

确保您的用户才有权做任何质疑你写在你的代码中。 运行该到你的MySQL

GRANT ALL on *.* to 'USER'@'%' identified by 'some_password''; 
FLUSH PRIVILEGES; 
0

,您的证书可能不是有效,再加上它的的mysqli产生问题(数据库,表),有含空间名工作。