2016-05-01 18 views
0

Ich fange an, eine PHP-Klasse für eine Datenbankverbindung zu machen, ich habe einen Konstruktor gemacht und in diesem Konstruktor stelle ich die Verbindung zur Datenbank her.Muss die Verbindungsvariable aus dem __construct in eine mysqli_query eingefügt werden?

class mysqli_db{ 

     function __construct() 
     { 
      $conn = mysqli_connect("ip","username","password"); 

      if (!$conn) { 
       echo "Cannot connect to server"; 
       exit(); 
      } 

      $db = mysqli_select_db($conn,"silvaag166_prj"); 

      if (!$db) { 
       echo "Cannot select database"; 
       exit(); 
      } 
     } 

    } 

Ich verstehe de Teil oben, aber jetzt möchte ich eine Funktion, um Daten aus der Datenbank auszuwählen, so dass ich diese gemacht haben:

public function selectAll($tablename) 
     { 
      return mysqli_query(?,"SELECT * FROM ".$tableName); 
     } 

Am? Ich muss die Verbindungszeichenfolge hinzufügen, und das kann im Konstruktor gefunden werden. Wie muss ich die Verbindungszeichenfolge an der? Einfügen.

+0

'return mysqli_query ($ conn verwenden sollten , "SELECT * FROM". $ TableName); '? –

+0

@ Fred-ii-So kann der $ conn in der ganzen Klasse zugegriffen werden? –

+0

deklarieren Sie es outside.then Sie Zugriff auf $ this-> conn' –

Antwort

3

Shop die Verbindung als Klasseneigenschaft, wird es dann auf die ganze Klasse zur Verfügung stehen, dh alle ihre Methoden als $this->conn

class mysqli_db{ 
    private $conn; 

    function __construct() 
    { 
     $this->conn = mysqli_connect("ip","username","password"); 

     if (!$this->conn) { 
      echo "Cannot connect to server"; 
      exit(); 
     } 

     $db = mysqli_select_db($this->conn,"silvaag166_prj"); 

     if (!$db) { 
      echo "Cannot select database"; 
      exit(); 
     } 
    } 

    public function selectAll($tablename) 
    { 
     return mysqli_query($this->conn,"SELECT * FROM ".$tableName); 
    } 

} 
+0

Dies ist genau das, was ich in meiner Antwort geschrieben habe. Sie sind Sekundenbruchteile schneller als ich. ;-) –

+1

Hi @RajdeepPaul Großartige Köpfe denken gleich – RiggsFolly

0

Sie $this->conn

class mysqli_db{ 
    private $conn; 

    function __construct() 
    { 
     $this->conn = mysqli_connect("ip","username","password"); 

     if (!$this->conn) { 
      echo "Cannot connect to server"; 
      exit(); 
     } 

     $db = mysqli_select_db($this->conn,"silvaag166_prj"); 

     if (!$db) { 
      echo "Cannot select database"; 
      exit(); 
     } 
    } 

    public function selectAll($tablename) 
    { 
     return mysqli_query($this->conn,"SELECT * FROM ".$tableName); 
    } 

} 
Verwandte Themen