2017-04-24 100 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產生問題(數據庫,表),有含空間名工作。