2012-10-04 4 views
5

Ich benutze diese Methode, um mysql db zu verbinden:Was ist der Unterschied zwischen mysqli :: real_connect und dem neuen mysqli-Objekt in der Verbindungsdatenbank?

$this->_Con = new mysqli($this->_DB['Server'],$this->_DB['User'],$this->_DB['Pass'],$this->_DB['DB']); 

Was ist der Unterschied, wenn ich diese Methode die Verbindung über:

$this->_Con = mysqli_init(); 
$this->_Con->real_connect($this->_DB['Server'],$this->_DB['User'],$this->_DB['Pass'],$this->_DB['DB']); 

Antwort

7

Es ist nur eine andere Art und Weise der Verbindung zu Ihrer Datenbank. Wenn Sie mysqli_init() verwenden, initialisiert es zuerst das Objekt mysqli. Dann rufen Sie mit dem Objekt real_connect() auf, um eine Verbindung zur Datenbank herzustellen. Aber wenn Sie new mysqli() verwenden, initialisieren Sie das Objekt mysqli, indem Sie die Verbindungswerte als Parameter übergeben. So wird die Initialisierung und die Verbindung gleichzeitig ausgeführt.

Hinweis: Der Aufruf des Konstruktors ohne Parameter ist mit dem Aufruf von mysqli_init() identisch.

In Ihrem ersten Fall erhalten Sie das Verbindungsobjekt als Rückgabewert, weil Sie mysqli() Konstruktor mit Parametern aufrufen. So können Sie Abfragen darauf ausführen. Aber in Ihrem zweiten Fall müssen Sie die Verbindung so speichern,

$con = $this->_Con->real_connect($this->_DB['Server'],$this->_DB['User'],$this->_DB['Pass'],$this->_DB['DB']); 

Dann laufen Anfragen auf $con

+0

Sie meinen also, dass mein $ this -> _ Con das gleiche mit diesen zwei Verfahren sein wird ?? Aber wenn ich versuche, die zweite Methode zu verwenden, denke ich, dass meine Insert-Anweisung keine neue Zeile einfügen kann. Hast du eine Ahnung warum? –

+0

check my edit !! – Deepak

+1

@ user1650716 Im Allgemeinen verwenden Sie * entweder * das Objekt von 'new mysqli()' * oder * die Struktur von 'mysql_init()'. Nicht beide. – staticsan

Verwandte Themen