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