ROG Innovation Logo

Tutorials, Gadgets und vieles mehr - Idea. Creation. Success. - Let's create the future!

PHP mySQL Datenbank Tutorial

mysql

Inhaltsverzeichnis:
  - Datenbank anlegen
  - Datenbank Verbindung
  - Datenbank lesen
  - Datenbank schreiben
  - Diverse Notizen

info Inhalt wurde mit PHP 7.0.1 & 7.2.0 geprüft 

MySQL Datenbank anlegen

Empfohlene Kollation: utf8mb4_unicode_ci

Im Gegensatz zu uft8 sind bei utf8mb4 auch Emojis möglich.
utf8mb4_unicode_ci ist zwar etwas langsamer als utf8mb4_general_ci, dafür werden aber Umlaute korrekt alpapethisch sortiert.

MySQL Haupt-Datentypen

Type Beschreibung
TINYINT Ganzzahlen von 0 bis 255 oder von -128 bis 127
SMALLINT Ganzzahlen von 0 bis 65'535 oder von -32'768 bis 32'767
INT Ganzzahlen von 0 bis 4'294'967'295 oder von -2'147'483'648 bis 2'147'483'647
BIGINT Ganzzahlen von 0 bis 2^64-1 oder von -(2^63) bis (2^63)-1
FLOAT Fliesskommazahl mit Vorzeichen. Wertebereich von -(3,402823466×1038) bis -(1,175494351×10-38)
DOUBLE / REAL Fliesskommazahl mit Vorzeichen. Wertebereich von -(1,79769×10308) bis -(2.22507×10-308)
DATE Datum im Format 'YYYY-MM-DD'. Wertebereich von 01.01.1000 bis 31.12.9999
DATETIME Datumsangabe im Format 'YYYY-MM-DD hh:mm:ss'.
TIME Zeit zwischen -838:59:59 und 839:59:59. Ausgabe: hh:mm:ss
YEAR Jahr zwischen 1901 bis 2155 bei (4) und zwischen 1970 bis 2069 bei (2)
CHAR Zeichenkette fester Länge. Wertebereich 0 bis 255
VARCHAR Zeichenkette variabler Länge. Wertebereich 0 bis 255
BINARY Zum Speichern binärer Strings, unabhängig vom Zeichensatz. Wertebereich 0 bis 255
CHAR Zeichenkette mit fester Länge. Wertebereich 0 bis 255. Füllt freien Platz mit Leerzeichen auf.
TEXT Zeichenkette mit fester Länge. Wertebereich 0 bis 65'535
TINYTEXT Zeichenkette mit fester Länge. Wertebereich 0 bis 255
MEDIUMTEXT Zeichenkette mit fester Länge. Wertebereich 0 bis 16'777'215
LONGTEXT Zeichenkette mit fester Länge. Wertebereich 0 bis 4'294'967'295
ENUM Liste von Werten (val1, val2, ...). 65'535 eineindeutige Elemente sind maximal möglich
SET String-Objekt mit verschiedenen Variablen. 64 sind maximal möglich

MySQL Datenbank Verbindung

Mit PHP können Daten z.B. aus einer MySQL Datenbank gelesen oder auch hinein geschrieben werden.
Hierzu muss als erstes eine Verbindung zur Datenbank aufgebaut werden.
Für diese ist die Datenbank URL erforderlich (Beispiel: 'meinserver.com'), der Datenbankbenutzername, das Datenbankpasswort und der Datenbankname.
Zudem sollte unbedingt der richtige Zeichensatz eingestellt werden (für Umlaute und Sonderzeichen).

PHP Code
<?php
// Verbindung zur Datenbank aufbauen
$datenbank = mysqli_connect ("SERVER-URL", "DATENBANKNAME", "DATENBANKPASSWORT", "DATENBANKBENUTZER1");

// Kollation (Zeichensatz) auf "utf8mb4" setzen
mysqli_set_charset($datenbank,"utf8mb4");
?>

MySQL Datenbank auslesen

Mit untenstehendem Code können nach einer erfolgreichen Verbindungsherstellung zur Datenbank ihre Tabellen ausgelesen werden.
Dieses Beispiel zeigt das Auslesen einer Tabelle (z.B. Gästebucheinträge).

PHP Code
<?php
// Verbindung zur Datenbank aufbauen
$datenbank = mysqli_connect ("SERVER-URL", "DATENBANKNAME", "DATENBANKPASSWORT", "DATENBANKBENUTZER1");

// Kollation (Zeichensatz) auf "utf8mb4" setzen
mysqli_set_charset($datenbank,"utf8mb4");

// Verbindung zur Datenbank erfolgreich aufgebaut
if ( $datenbank )
{
echo 'Verbindung erfolgreich: ';
print_r( $datenbank);
}
// Verbindung zur Datenbank fehlgeschlagen
else
{
die('keine Verbindung möglich: ' . mysqli_error());
}

// Tabelle auslesen
$query= "SELECT name, datum, nachricht FROM TABELLENNAME WHERE status = '2' ORDER BY datum DESC";
if ($result = mysqli_query($datenbank, $query))
{
  while ($row = mysqli_fetch_object($result))
  {
  echo "$row->name";
  $datumEN = $row->datum;
  $datumDE = date("d.m.Y H:i", strtotime($datumEN));
  echo "$datumDE";
  echo "$row->nachricht";
  }
}

// Datenbankverbindung schliessen
mysqli_close($datenbank);
?>

Erklärung:
Auslesen von Name, Datum und der Nachricht.
Zudem werden hier nur Einträge ausgegeben welche den Status zwei haben (z.B. freigeschalten).
Schliesslich werden alle Einträge mit dem aktuellestem Datum absteigend sortiert, so dass der neuste Eintrag als erstes ausgegeben wird und im Gästebuch zu oberst angezeigt wird.

MySQL Datenbank schreiben

Natürlich lassen sich nicht nur Daten aus einer Datenbank lesen, sondern es können auch neue Daten über INSERT INTO in eine Datenbank geschrieben werden.
Daten welche in die Datenbank geschrieben werden sollen, werden zuerst in einer Variable ($query) gespeichert und dann übergeben

PHP Code
<?php
// Verbindung zur Datenbank aufbauen
$datenbank = mysqli_connect ("SERVER-URL", "DATENBANKNAME", "DATENBANKPASSWORT", "DATENBANKBENUTZER1");

// Zeichensatz (Kollation) auf "utf8" setzen
mysqli_set_charset($datenbank,"utf8");

// Daten in Datenbank (Tabelle Guestbook) schreiben
$query = "INSERT INTO Guestbook(name, nachricht, email, datum)
VALUES('$name', '$gbeintrag', '$email', '$datum')";
mysqli_query($datenbank, $query);

// datenbankverbindung schliessen
mysqli_close($datenbank);
?>

Diverse Notizen

Ergebnisse anzeigen Fetch Row
Die Funktion "mysql_fetch_row($query)" erwartet als Argument ein Ressource id und gibt als Resultat einen Array zurück, der eine Zeile des Ergebnisses repräsentiert. Wenn das Ende der Ergebnisliste erreicht ist, gibt die Funktion false zurück.

Fetch Array
"mysql_fetch_array" arbeitet ähnlich wie mysql_fetch_row, es wird jedoch ein assoziativer Array erzeugt, der als Index die Spaltennamen der Datenbank hat.

Fetch Object
Die Funktion "mysql_fetch_object" gibt ein Objekt zurück. Dieses Objekt hat Attribute die den Namen der Spalten haben.


Hinweis
ES ist unbedingt die verwendete Server PHP Version zu beachten, gewisse ältere Funktionen funktionieren mit neueren PHP Versionen nicht mehr.



Kommentare
Hier können sowohl Fragen wie auch ein Feedback zum oben stehenden Artikel eingetragen werden.


*Name:


*Kommentar:

(max. 500 Zeichen)

Terms:


*Pflichtfeld

Hinweis:
Der Eintrag wird nach einer redaktionellen Prüfung in den kommenden Tagen freigeschalten.

Top Themen

Suche
DoubleTwist
doubletwist iTunes mit Android Handy synchronisieren
Free YouTube Video Music
Youtube gratis Musik für Youtube Videos
Anzeige
Spenden
ROG Innovation unterstützen