web-dev-qa-db-ja.com

9行目のC:\ webdev \ wamp \ www \ membershipSite \ classes \ Mysql.phpのユーザー 'username' @ 'localhost'(パスワード:YESを使用)のアクセスが拒否されました

私はこれらすべてに不慣れですが、かなりの量のHTML/CSSを知っています。ログインサーバーを作成したいのですが、ほとんどのコードをビデオから取得しました。誰かが私を助けて、私が理解できるように徹底的に説明することができれば、それは大いにありがたいです。他に何か必要なものがあれば、喜んで投稿します。

<?php

require_once 'includes/constants.php';

class Mysql {
private $conn;

function _construct() {
    $this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('There was a problem connecting to the database.');
}

function verify_Username_and_Pass($un, $pwd) {

    $query = "SELECT *
            FROM users
            WHERE username = ? AND password = ?
            LIMIT 1";

    if($stmt = $this->conn->prepare($query)) {
        $stmt->bind_param('ss', $un, $pwd);
        $stmt->execute();

        if($stmt->fetch()) {
            $stmt->close();
            return true;
        }
    }

}
}
5
TheUnCola

Mysqlのuser @ Hostに権限を付与する必要があります。付与コマンドは次のようになります

grant all privileges on YOURDB.* to
'YOURUSER'@'localhost' identified by 'YOURPASSWORD';
9
Kevin Seifert

私自身の問題からこの答えに到達したときの単なる副次的な答えですが、問題のユーザーにすべての特権が与えられていることを知っていたので、別の解決策がありました

私は次のようなコードを使用していました

        <?php

        session_start();

        $db_Host="Host";
        $db_user="user";
        $db_pass="mypassword";
        $db_name="dbname";
        $db_table="tblname";

        mysql_connect($db_Host, $db_user, $db_pass) or die(mysql_error());
        mysql_select_db($db_name) or die(mysql_error());

ここでの問題は、ジェネレーターを使用したデータベースのパスワードに$記号が含まれているため、スクリプトが混乱し、で開始するときに別の変数があると考えていたということでした。

        $db_pass="mypass$Word";
4
OrisHeavens