Hauptmenü

Untermenü

MySQLi - Methoden - MySQLi - real_connect

1. Das Prinzip

... habe ich ja schon an dieser Stelle erläutert. Kommen wir nun zu dem Einsatzmöglichkeiten. Wie ich schon sagte, kann man mit init() die MySQLi-Erweiterung starten. Und dann hat man die Möglichkeit, die Erweiterung mit diversen Optionen zu füttern. Die werden dann bei einem real_connect übermittelt. Denke ich zumindest, die offizielle Doku ist da nicht sehr mitteilungsbedürftig.

Vorteile

Grundsätzliche Dinge können an einer Stelle erledigt werden und man muss sich dann nicht mehr um sie kümmern. Das spart Code, reduziert mögliche Fehlerquellen und schont somit die Nerven. Ist also so eine Art Baldrian für die Client-Server-Kommunikation.

2. options

Diese Methode/Funktion ist meiner Meinung nach der eigentliche Grund für die sinnvolle Verwendung von real_connect. Die grundsätzliche Verwendung sieht so aus.


// Objektorientiert
$mysqli mysqli_init();
$mysqli -> options(...);
$mysqli -> real_connect('host''user''pw''db')

// Prozedural
$mysqli mysqli_init();
mysqli_options($mysqli, ...);
mysqli_real_connect($mysqli'host''user''pw''db')

3. Möglichkeiten

Charset festlegen


// Objektorientiert
$mysqli mysqli_init();
$mysqli -> options (MYSQLI_INIT_COMMAND'SET NAMES \'utf8\'');
$mysqli -> real_connect('host''user''pw''db');

// Prozedural
$mysqli mysqli_init();
mysqli_options ($mysqli,MYSQLI_INIT_COMMAND,'SET NAMES \'utf8\'');
mysqli_real_connect($mysqli,'host','user''pw''db');

Eine einfache Möglichkeit, um allen Problemen bei der Zeichenkodierung aus dem Weg zu gehen.

Autocommit abklemmen

ich persönlich halte überhaupt nichts von dieser Möglichkeit. Denn meiner Meinung nach sollte man das nur temporär bei Transaktionen machen.


// Objektorientiert
$mysqli mysqli_init();
$mysqli -> options (MYSQLI_INIT_COMMAND'SET AUTOCOMMIT = 0');
$mysqli -> real_connect('host''user''pw''db');

// Prozedural
$mysqli mysqli_init();
mysqli_options ($mysqli,MYSQLI_INIT_COMMAND,'SET AUTOCOMMIT = 0');
mysqli_real_connect($mysqli,'host','user''pw''db');

4. Fazit

Ich persönlich sähe in real_connect keinerlei Vorteile, wenn da nicht die Sache mit dem SET NAMES wäre. Gut, es gibt noch etliche andere Möglichkeiten, aber über deren Sinnhaftigkeit kann man auch seine Zweifel haben. Übernehmt aber bitte nicht einfach kritiklos meine Meinung, sondern bildet euch eine eigene.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt