[PHP-HowTo] Mysqli Tutorial

05/24/2010 12:27 syslen#1
Mysqli Tutorial by syslen

Da viele noch das veraltete mysql Modul verwenden, möchte ich euch heute das mysqli Modul vorstellen :-)
Warnung: Nicht jeder Hoster hat das mysqli Modul installliert.

Das is mein erstes TuT auf e*pvp, dennoch bitte ich euch wenn euch das Tut nich gefällt es mir zu sagen und wenn möglich mir Tipps geben. Danke!

Ich erlaube jeden dieses Tutorial ohne meine Erlaubnis zu kopieren. Ich appelliere dennoch an eure Moral es nicht als euer selbstgeschriebenes auszu geben und dafür noch THXe zu verlangen

Vorteile:
  • Zugriff über OOP oder Prozedural
  • wesentlich schneller als mysql
  • sichere Connections
  • neue funktionen
  • vieles mehr
Wie gesagt mysqli bietet noch jede Menge mehr .....

Vorrausetzungen:
- Du hast die Grundkentnisse der OOP von PHP
- Du kannst mit einer MySQL Datanbank umgehen

Lernen:
Ich möchte euch hier nur die OOP Methode zeigen, da sie meiner Meinung nach wesentlich eleganter ist.
Wie bei mysql müssen wir zuerst eine Verbindung zur DB aufbauen. Dazu instanzieren wir die Klasse mysqli.
PHP Code:
$db = new mysqli("host","user","password","database"); 
Die Argumente des Konstruktors dürften verständlich sein.
Wenn alles glatt lief sollte eine Verbindung mit der Datenbank hergestellt sein.
Die Klasse mysqli bietet Methode die ähnlich der funktionen von mysql sind. Fangen wir mit der query() Methode an.
PHP Code:
$result $db->query("SELECT * FROM mytable"); 
Dieser wählt alles in der Tabelle mytable aus. Um nun die Datensätze auszu lesen brauchen wir die Methode fetch_object() (es gibt auch noch fetch_assoc und so) die über das erstellte Objekt von query() auf die Datensätze zugreift .
PHP Code:
while($row $result->fetch_object()) {
echo 
"Hallo mein name ist " .$row->name" und ich bin ".$row->age." Jhare alt<br>\n";

so lange die Bedinungen in der Bedingungsschleife while erfühlt wird werden alle Datensätze ausgegeben.
für hardcore program0r gibt es natürlich auch diese Methode
PHP Code:
$num_rows $result->num_rows
for(
$i 0;$i <= $num_rows$i++) {
$row $result->fetch_object();
echo 
"Hallo mein name ist " .$row->name" und ich bin ".$row->age." Jhare alt<br>\n";

Wie man hier schön sehen kann is num_rows keine Methode sondern eine Membervariable. Das selbe gilt für affected_rows!

Ich denke jetz könnt ihr mit euren Wissen ein kleines Log-in skript basteln oder ein kleines Gästebuch.
Falls ich noch irgendwas wichtiges vergessen hab, sagt es mir bitte. Ich werde demnächst noch eine Fortsetzung schreiben

Fortsetzung folgt .....
05/28/2010 08:05 Jay Niize#2
Hallo zuerstmal auf Elitepvpers :D
Fürs erste ziemlich gut :) Bloß ich würde dir einen Tipp geben :
Erkläre auch die Begriffe, für Anfänger! Z.B

$db = Das es eine DB auswählt!

Sonst gutes Tutorial ;)
05/28/2010 22:18 Fratyr#3
Quote:
$db = Das es eine DB auswählt!
Es ist doch als Vorraussetzung die Grundkentnisse der OOP genannt worden, wenn man
die beherscht weiß man auch automatisch das man mit $db = new blabla; ein neues
Objekt instanziert.
05/29/2010 08:00 Jay Niize#4
schon, aber man will ja nich extra sich 5-6 Tage hinhocken, des lernen & dann erst des Tutorial lesen & verstehen! aber egal ;)

Back2Topic : wie gesagt, erkläre dasv auch, sonst wird es auch für dich keine Fortschritte geben :D
06/06/2010 22:17 Andrew094#5
wenn du sagst, dass um die daten zu lesen auch noch 'fetch_assoc' gibt solltest du den unterschied erklären...
06/06/2010 23:09 d3pr1#6
grundkenntnise gefordert....

wieviele einfach mal die einleitung ueberspringen
danke fuer das tut gleich mal abgespeichert und fuer das naechste project benutzen