2017-04-24 12 views
-2

これは初心者のエラーですが、私は長年の4日間試してみると、これだけで解決できません。DB接続の基本エラー

誰かが私を助けることができますか?

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

指定したデータベース名が間違っています。またはユーザー名とパスワードの不一致。 'localhost'、' root'、 '' ''、'あなたのdb名 ' –

答えて

0

は、ユーザーがお書きに照会何でもする権限を持っていることを確認してくださいあなたのコードで。あなたのmysql

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

一つに ランこれは、あなたの資格情報が有効ではないかもしれません、それに加えてスペースを含む名前を持つ(データベース、テーブル)で動作するようにmysqliののための問題を作成します。

関連する問題