Класс базы данных неправильно соединяется с моей базой данных - PullRequest
0 голосов
/ 01 мая 2010

Я просто углубляюсь в мир ООП, так что прости меня, если это нон-бишский вопрос.

Вот что у меня на index.php:

$dbObj = new Database();
$rsObj = new RS($dbObj);

Это класс базы данных:

class Database
{
    private $dbHost;
    private $dbUser;
    private $dbPasswd;
    private $dbName;
    private $sqlCount;

    function __construct()
    {
        $this->dbHost   = 'localhost';
        $this->dbUser   = 'root';
        $this->dbPasswd = '';
        $this->dbName   = 'whatever';
        $this->sqlCount = 0;
    }

    function connect()
    {
        $this->link = mysql_connect($this->db_host, $this->db_user, $this->db_passwd);
        if(!$this->link)
                $this->error(mysql_error());

        $this->selection = mysql_select_db($this->db_name, $this->link);
        if(!$this->selection)
                $this->error(mysql_error());
    }
}

Я сократил его до connect() метода, чтобы упростить вещи.

Это класс RS:

class RS
{
    private $username;
    private $password;

    function __construct($dbObj)
    {
        // We need to get an account from the db
        $dbObj->connect();

    }
}

Как вы, наверное, видите, мне нужно получить доступ и использовать класс базы данных в моем классе RS. Но я получаю эту ошибку при загрузке страницы:

Предупреждение: mysql_connect () [function.mysql-connect]: доступ отказано для пользователя 'ODBC' @ 'localhost' (используя пароль: НЕТ) в C: \ XAMPP \ HTDOCS \ включает \ database.class.php по линии 22 * ​​1019 *

Дело в том, что я понятия не имею, откуда у него идея, что ему нужно использовать ODBC в качестве пользователя ... Я прочитал о том, как делать это, и из того, что я могу собрать, я делаю это правильно.

Кто-нибудь может мне помочь?

Спасибо.

1 Ответ

2 голосов
/ 01 мая 2010

Имена свойств в connect () не совпадают с именами свойств класса.

Изменение:

$this->link = mysql_connect($this->db_host, $this->db_user, $this->db_passwd);

Кому:

$this->link = mysql_connect($this->dbHost, $this->dbUser, $this->dbPasswd);

И изменить:

$this->selection = mysql_select_db($this->db_name, $this->link);

Кому:

$this->selection = mysql_select_db($this->dbName, $this->link);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...