2016-07-26 2 views
-4

Nur der Teil, der ist $ this-> link-> query ($ query) Ich verstehe, dass Link ist die Member-Variable der Klasse Datenbank, aber nicht verstehen, was passiert, wenn $ this-> link-> Abfrage ($ query) wird ausgeführt? Hilfe, ich bin ein Neuling bei Codierung

Mein ganzer Code:

<?php 


class Database 
{ 
    public $db_host=DB_HOST; 
    public $db_user=DB_USER; 
    public $db_pass=DB_PASS; 
    public $db_name=DB_NAME; 


    public $link; 

    public $error; 

    public function __construct() 

    { 



     // Call connect function 

     $this->connect(); 


    } 

    private function connect() 
    { 
     $this->link= new mysqli($this->db_host,$this->db_user,$this->db_pass,$this->db_name); 

     if(!$this->link) 
     { 
      $this->error="Connection Failed"; 
      return false; 
     } 

    } 

    public function select($query) 
    { 
     $result=$this->link->query($query) or die ("Query could not execute"); 
    } 

} 


?> 
+1

Ich verstehe die Frage hier nicht. Was ist das Problem"? Es funktioniert oder nicht? Oder Sie wollen wissen, "wie" alles zusammenkommt? –

+3

Äh, es führt die Abfrage und gibt ein Ergebnis zurück? –

+0

Problem ist, dass ich nicht verstehe, wie "$ this-> link-> query ($ query)" funktioniert. Ich greife auf "$ link" -Membervariable mit "$ this-> link", aber verstehe nicht, was "$ this-> link-> query ($ query)" ist? –

Antwort

0
  1. $this ist die aktuelle Database Objekt Sie verwenden.
  2. -> ruft eine Methode oder Mitglied dieses Objekt
  3. link wie Sie wies darauf hin, ist ein Mitglied der Database, die nur eine andere Aufgabe mysqli sein geschieht.
  4. query($query) ist eine Methode der Verbindung.

So rufen Sie mysqliquery. Wo die param $query sollte Ihre SQL

+0

Danke! Danke vielmals! Ich weiß, Stack Overflow ist keine Tutorial-Seite, aber Sie haben gerade eine größere Verwirrung beseitigt. –

0

$this->link sein ist ein Datenbank-Verbindungsobjekt, und es hat eine Methode query() dafür Datenbank-Abfragen und Zurückgeben ein Mysqli Ergebnis Objekt aufgerufen. Die query()-Methode verwendet eine SQL-Zeichenfolge. So eine Möglichkeit, es zu berufen wäre:

$result = $this->link->query("SELECT * FROM table WHERE 1") ; 

Es ist sehr üblich, eine Variable zu verwenden, anstatt ein Zeichenfolgenliterals in Anrufen query() mysqli:

$sql = "SELECT * FROM table WHERE 1" ; 
$result = $this->link->query($sql) ; 

Im Fall des Codes, die variable enthält die SQL-Zeichenfolge heißt $query, die irgendwie verwirrend sein kann, zumal $query nirgendwo definiert ist, dass ich sehen kann.