2012-03-28 6 views
0

Ich habe Probleme mit meiner DatabaseConnection Klasse. Ich kann nicht scheinen $dbUser oder $dbName Variablen für diese Verbindungsklasse arbeiten. Ich muss die Werte derzeit manuell in Anführungszeichen setzen. Gibt es etwas, was ich falsch mache?PHP: Datenbankverbindungsklasse - verbindet nicht

class DatabaseConnection { 
    private $dbHost = "localhost"; 
    private $dbUser = "root"; 
    private $dbPass = ""; 
    private $dbName = "test"; 

    function __construct() { 
     $connection = mysql_connect($dbHost, "root", $dbPass) 
      or die("Could not connect to the database:<br />" . mysql_error()); 
     mysql_select_db("test", $connection) 
      or die("Database error:<br />" . mysql_error()); 
    } 
} 

Wenn Sie Vorschläge zur Verbesserung meiner aktuellen Klasse, auf alle Fälle, lassen Sie es mich wissen!

Antwort

2

Da dies eine Klasse ist, müssen Sie Ihre Klassenvariablen zugreifen $this->dbHost verwenden, $this->dbUser usw. statt $dbHost, $dbUser. PHP erfordert, dass Sie $ this-> Variablenname für Klassenvariablen verwenden.

EDIT:

Hier ist der Code mit den mysql_connect Variablen verändert Ihre Klassenvariablen für den Zugriff auf

class DatabaseConnection { 
    private $dbHost = "localhost"; 
    private $dbUser = "root"; 
    private $dbPass = ""; 
    private $dbName = "test"; 

    function __construct() { 
     $connection = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass) 
      or die("Could not connect to the database:<br />" . mysql_error()); 
     mysql_select_db("test", $connection) 
      or die("Database error:<br />" . mysql_error()); 
    } 
} 
+0

ausgezeichnet, die Sinn macht, danke. Noch eine kurze Frage, aber ist es richtig, dass ich diese Variablen auf "privat" setze, oder sollten sie einfach "var" sein? – Aaron

+1

Ja, privat ist der Weg zu gehen. Sie möchten es so einrichten, dass Ihre Klasse den Zugriff auf diese Variablen steuert. – Gohn67