Veritabanı sınıfı doğru benim veritabanına bağlanma değildir

1 Cevap php

Ben sadece bu bir n00bish soru eğer öyleyse beni affet OOP dünyasına cesaretini ediyorum.

Bu benim üzerinde ne var index.php:

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

Bu Veritabanı sınıfı:

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());
    }
}

Ben şeyleri basitleştirmek için sadece connect() yöntemi kısaltılabilir ettik.

Bu RS sınıfı:

class RS
{
    private $username;
    private $password;

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

    }
}

Muhtemelen Gördüğünüz gibi, benim RS sınıfında veritabanı sınıf erişmek ve kullanmak gerekir. Ben sayfasını yüklediğinizde ama ben bu hatayı alıyorum:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\includes\database.class.php on line 22

Şey, ben onu bir kullanıcı olarak ODBC kullanmak gerekiyor fikrim var hiçbir fikrim yok ... Ben bu şeyleri yapmaya kadar okudum ve ben toplayabilir ne ben doğru yapıyorum .

Herkes bana bir el ödünç misiniz?

Teşekkür ederim.

1 Cevap

Connect özellik adları () sınıfının özellik adları eşleşmiyor.

Değiştir:

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

Için:

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

Ve değiştirin:

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

Için:

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