2015-02-08 152 views
0
class DatabaseConnection{ 
    private $connection; 
    private $username; 
    private $password; 
    private $serverName; 
    private $database; 
    private $database_found = false; 

    //constructor with params 
    public function __construct($database,$username,$password,$serverName){ 
    $this->$username = $username; 
    $this->$password = $password; 
    $this->$serverName = $serverName; 
    $this->$database = $database; 
    } 

    //estabilish database connection 
    public function connect() 
    { 
    $connection = mysql_connect($this->serverName,$this->username,$this->password); 
    if($connection) 
    { 
     echo "Connection was successful!\n"; 
     $db = mysql_select_db($this->database,$connection); 
     if($db) 
     { 
     echo "Database found!\n"; 
     $this->database_found = true; 
     } 
     else{ 
     echo "Database not found!\n"; 
     } 
    } 
    else { 
     echo "Failed to connect to the database!\n"; 
    } 
    } 

    //closes connection 
    public function close_connection(){ 
    mysql_close(); 
    echo "Connection closed!\n"; 
    } 

    public function getConnection(){ 
    return $this->connection; 
    } 

    public function getDatabaseState(){ 
    return $this->database_found; 
    } 
} 

这是我的数据库连接类。它连接到MySQL,但由于某种原因,它不想连接到数据库(我试图插入数据库名称作为字符串在mysql_select_database,但仍然无法正常工作)。数据库存在的原因这是手动创建的。谢谢您的帮助。通过php连接到mysql

回答

2

mysql_*功能已弃用,您应该使用PDOHere是我找到的第一个教程。

您还可以使用$this->$username,您应该使用$this->username。这里是关于PHP类的the official tutorial

此外,该公约是在开始写在类的私有变量以下划线,就像这样:

  • private $_username;创建它;
  • $this->_username打电话给它。

您也可以创建getter和setter来与变量进行交互。 (why?

+0

谢谢。我会看看它! – Chris 2015-02-08 11:12:53

+0

@Chris刚编辑添加更多细节 – tleb 2015-02-08 11:25:28

+0

我知道OOP的实践:)刚刚使用Java,但对于这个项目对我来说更好PHP – Chris 2015-02-08 16:04:52

0

检查您在MySQL的访问权限。 用户是否允许使用给定的数据库?

+0

是的,我刚刚开发的本地机器数据库是由我创建的,我使用的是root帐户 – Chris 2015-02-08 11:10:38

2

您目前有:

$this->$username = $username; 

这应该是:

$this->username = $username; 

你有4次出现了这一点。

+0

我喜欢你说的话,我得到了警告 Warning:mysql_connect():由于目标机器主动拒绝连接,因此无法建立连接。在第22行的E:\ xampp \ htdocs \ catchrecorder \ database.php中 – Chris 2015-02-08 11:09:54