PHP类拒绝SQL连接

时间:2015-07-24 20:17:03

标签: php mysql class mysql-connect

如果我使用简单的SQL-PHP连接来测试它是否可以连接到DB,如:

$link = mysql_connect('localhost', 'user', 'pass');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected';
mysql_close($link);

它工作并连接witohut问题,但是当我将它添加到类时,它给了我一个错误访问被拒绝用户'root'@'localhost'。这是类代码:

class Konektor {
    private $dbhost = "localhost";
    private $dbuser = "user";
    private $dbpass = "pass";
    var $link;
    function testcon() {
        $link = mysql_connect($dbhost, $dbuser, $dbpass);
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        echo 'Connected';
        closedb($link);
    }
    function closedb($link) {
        mysql_close($link);
    }
}

1 个答案:

答案 0 :(得分:0)

在类中,您需要使用$this语法访问变量。按以下方式修改您的课程:

class Konektor {
    private $dbhost = "localhost";
    private $dbuser = "user";
    private $dbpass = "pass";
    private $link;
    function testcon() {
        $this->link = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass);
        if (!$this->link) {
            die('Could not connect: ' . mysql_error());
        }
        echo 'Connected';
        $this->closedb();
    }

    function closedb() {
        mysql_close($this->link);
    }
}

在PHP中,类的操作与程序函数和变量的操作略有不同。在课程中,您需要使用privateprotectedpublic来定义类变量(属性)和函数(方法)。要访问属性(或方法),您需要使用$this->{property name / method name}语法。对于方法,您仍然需要在调用结束时使用括号,如下所示:$this->closedb();