[Tutorial] Datenbank lesen/schreiben mit MySQLi

  • Einen wunderschönen Guten Abend.

    Hab ein bisschen zuviel Zeit, da hab ich mal rumgesucht und ma noch keine Tutorials oder ähnlichs zu MySQLi gefunden.
    Möchte ich mal ein kleines Tutorial machen, wie man mit MySQLi eine einfach Verbindung zur Datenbank aufbaut.

    Ich arbeite mit PHP5 und MySQL 4.1.7.
    MySQLi ist erst aber einer Version von 4.1 aufwärst verfügbar.
    Ich gehe von einem installierten Xampp aus, mit Host = localhost, user = root, passwort = keins und Db = php.

    Vorne weg, was passieren kann, wenn MySQLi nicht aktiviert ist kommt sowas wie "Fatal Error. Class MySQLi not found in...". Dann mal in die php.ini schauen bei den extensions noch die mysqli.dll eintragen: extension=php_mysqli.dll. Dann einmal den Apache neustarten und das Problem sollte erledigt sein.
    Wer Xampp benutzt sollte vorher mal in der phpinfo(); nachsehen wo die php.ini liegt, bei meiner xampp version gibts die php.ini 2mal, dann noch die php5.ini und die php4.ini, man kann da zwischen vers. 4 und 5 umschalten.

    Dann habe ich eine DB angelegt die php heißt und eine Tabelle mit 4 Feldern:

    Code
    CREATE TABLE `trainings` (
      `id` int(11) NOT NULL auto_increment,
      `titel` varchar(100) NOT NULL default '',
      `trainer` varchar(100) NOT NULL default '',
      `dauer` int(11) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ;

    Eine Tabelle für Trainingstitel + Trainer + der Dauer.

    Dazu gibt es dann auch ein Formular mit 3 Eingabfeldern, Titel, trainer und die Dauer. Die ID wird automatisch hoch gezählt:

    So, nun an die PHP Sachen :).

    Zuerst das Eintragen. Dazu eine PHP Datei erstellen. Name ist egal, kann man logischerweise z. B. eintragen.php nennen. In die Datei zuerst das Formular legen, führ hier direkt in einer Datei das eintragen aus:
    dann sieht die ungefähr so aus:

    So, nun erstmal eine überprüfung, nach Klick auf Eintragen!, ob auch alle Variablen richtig gesetzt sind und Werte enthalten:

    Bisher kann das Script noch nichts außer überprüfen des Formulars.

    Nun erstellen wir die Verbindung zur DB:

    Sooo, nun nach ausführen des Skripts mal einen Blick in PHPMyAdmin werfen und nachsehen ob Daten in der Tabelle stehen.
    Normalerweise sollte das funktionieren.
    So schwer war das doch garnicht :).

    :arrow: Es gibt noch eine zweite (einfacherer) Möglichkeit die Daten einzutragen, d.h. ohne Prepare:
    Nach Verbindung erstellung:

    Code
    $sql = sprintf('INSERT INTO trainings (titel, trainer, dauer) VALUES (\'%s\', \'%s\', %s)',
           $db->real_escape_string($_POST['titel']),
           $db->real_escape_string($_POST['trainer']),
           (int)$_POST['dauer']
         );
    
        $db->query($sql);
        $db->close();


    Wobei ich die Prepare Variante persönlich besser finde, zwar etwas mehr schreibaufwand, aber man gewöhnt sich dran.

    So nun sind die Daten in der DB, wollen wir diese auch wieder rausholen.
    Ausgabe mache ich jetzt in eine ganz normale Tabelle.

    Leg nun eine neue Datei an, die du z. B. ausgabe.php nennst, und da kommt nun dieser Code rein:

    So nun ist die Ausgabe da.

    Das kann man wiederrum auch anders gestalten, in etwa so:

    Wobei man sich da streiten kann welche Variante besser oder schlechter ist, kommt beides auf das selber raus :D.


    Nun ist es natürlich jedem selbst überlassen, ob man die Verbindung mit MySQLi oder mit MySQL aufbaut.
    Ich persönlich finde MySQLi die bessere Variante. Dazu auch die Reference ausm PHP Handbuch. Wie man sieht, jede Menge vordefinierte Funktionen.

    Dann wünsch ich mal jedem den das Interessiert viel Spaß mit dem Tutorial, hoffe nicht alles umsonst getippt zu haben ;) ...

    Greetz

    Mülla


  • Sowas ist gut. Viele haben beim Erstellen von Scripten Probleme, wie ich:
    https://www.forum-hilfe.de/viewtopic.php?t=22508

    Herzliche Grüße
    aus Freital
    Wolfgang
    Danke im Voraus allen helfenden Usern!!