Im Zusammenhang mit PHP wird häufig mit MySQL Datenbanken gearbeitet
MySQL ist eine Open-Source Datenbank mit der größten Verbreitung. Es ist ein SQL-basierter Datenbankserver der in XAMPP, WAMP, MAMP bereits enthalten ist.
SQL ist die am meisten verbreite Datenbanksprache der Welt. Mit SQL Anweisungen kann man:
Mittles PHP kann man eine Verbindung zu einer MySQL Datenbank herstellen. In PHP kann man mit SQL Befehlen Datenbanken erstellen und verwalten.
phpMyAmin ist ein Programm, welches standardmäßig auf fast allen Servern mit mySQL Datenbanken zur Verfügung steht. phpMyAdmin bietet eine komfortable Lösung mit einer visuellen Benutzeroberfläche, um Datenbanken zu verwalten, exportieren, importieren etc.
phpMyAdmin läuft über das Browserfenster ab.
Über das Controlpanel von Wamp oder die Startseite von XAMPP kann man phpMyAdmin starten.
http://localhost
http://localhost/phpMyAdmin/index.php
Der Anmeldename des lokalen Webservers ist in der Regel root und das Passwort bleibt leer.
Im Installationspaket von XAMPP ist MariaDB enthalten, das ist eine Abspaltung von MySQL. In den Basics ist der Unterschied unerheblich. phpMyAdmin ist für MariaDB nicht geeignet.
Eine Datenbank dient zur Speicherung großer Datenmengen. Mit einer Datenbank kann man diese Daten übersichtlich anlegen, verwalten und ändern.
In einer Datenbank befinden sich verschiedene Tabellen. In diesen Tabellen befinden sich Felder . Damit kann man beisielsweise Felder für Name, Vorname, Personalnummer, Gehalt, Geburtsdatum, etc. erstellen.
Jedes Feld hat nebem dem sogenannten Feldnamen auch noch andere Eigenschaften wie beispielsweise die Eigenschaft Datentyp: String, Number, Date, oder die Eigenschaft Primärschlüssel: ja.
Diese Felder bilden dann mehrere Datensätze, in diesem Beispiel wird jede Person mit ihren Daten in einem Datensatz gespeichert. Die Datensätze bestehen aus den Feldern, mit den Feldnamen name, vorname, personalnummer, gehalt, geburtstag
Das Anlegen einer Datenbank erfolgt in 3 Schritten.
Öffne phpMyAdmin. Im Menü von WAMP oder über die Starseite von XAMPP lässt sich phpMyAdmin starten.
Auf der linken Seite sieht man alle gespeicherten Datenbanken mit ihren Tabellen.
Auf der rechten Seite sieht man die Struktur einer ausgwählten Datenbank.
Oben sieht man das Bedienungsmenü.
Klicke auf der linken Seite auf HOME Symbol und wähle dann den Zeichensatz utf8mb4_german2_ci aus, damit die Datenbankfelder mit Strings die Umlaute und das ß richtig darstellen.
Es soll eine neue Datenbank namens firma angelegt werden. In dieser soll eine Tabelle namens personen angelegt werden mit folgenden Feldern: name, vorname, personalnumer, gehalt, geburtstag..
Zunächst wird eine neue Datenbank angelegt. Auf einem Server kann man oft keine eigenen Datenbanken anlegen, sondern es steht eine gewisse Anzahl von Datenbanken zur Verfügung. In dieser kann man dann Tabellen anlegen.
Auf dem heimischen Server legen wir eine Datenbank an, indem wir oben rechts das HOME Symbol auswählen und dann auf den Karteireiter Datenbanken klicken.
Unter neue Datenbanken gebe den Namen der Datenbank firma ein und wähle unter Kollation UTF8mb4_german2_ci.
Die Namen der Datenbanken sollten keine Sonderzeichen, Leerzeichen oder Umlaute oder ß enthalten.
Nach jedem Befehl in phpMyAdmin erscheint unten ein Button SQL Vorschau. Durch klicken erscheint der SQL Befehl, den man für die Programmierung mit PHP verwenden kann.
Nach dem Anlegen wählen Sie aktualisieren. Oben links, rechtes Symbol grüner Kreispfeil
Will man eine Datenbank umbenennen, gibt es 2 Möglichkeiten:
Wähle oben im Menü von phpMYAdmin Operationen. Gebe bei Datenbank umbenennen in eine neuen Namen ein und bestätige mit "ok";
Alternative Möglichkeit: man muss XAMPP beenden und anschließend den Ordnernamen der Datenbank
löschen. Der Ordner befindet sich unter
C:\xampp\mysql\data Die Unterverzeichnisse entsprechen den Datenbanken. In Wamp ist der Pfad etwas verschlungener,
aber man kann ja im Dateisystem suchen. das Prinzip ist das gleiche, der Ordnername entspricht der
Datenbank.
C:/wamp64/bin/mysql/mysql5.7.36/data
Es gibt mindestens 3 Möglichkeiten eine Datenbank auf dem lokalen Webserver zu löschen
Es soll eine neue Datenbank namens firma angelegt werden. In dieser soll eine Tabelle namens personen angelegt werden mit folgenden Feldern.
Feldname | Datentyp | Erklärung |
---|---|---|
name | VARCHAR(30) | Zeichenkette bis 30 Zeichen |
vorname | VARCHAR(25) | Zeichenkette bis 25 Zeichen |
personlanummer | INT(4) | Ganzzahl (die Zahl schränkt nicht die Länge ein, sondern ermöglicht eine Darstellung mit vorangestellten Nullen oder anderen Zeichen.) siehe hier |
gehalt | DOUBLE | Fließkommazahl |
geburtstag | DATE | Datum |
Klicken Sie auf den Namen der neu erzeugten Datenbank links.
Da noch keine Tabelle in der Datenbank exisitert wird auf der rechten Seite angzeigt: ERZEUGE TABELLE
Geben Sie Namen und Anzahl der Spalten an. In diesem Fall personen und 5.
Nachdem man auf Speichern geklickt hat erscheint eine Ansicht, wo man die weitere Daten eintragen kann.
Unten erscheint der Button SQL Vorschau Damit der SQL Befehl eine Tabelle anzulegen angezeigt.
Nun trägt man die einzelnen Daten ein, wie sie oben in der Grafik aufgeführt sind.
Der Wert Null bedeutet, dass es möglich ist, in dem Feld keinen Eintrag zu machen, es darf leer bleiben.
Ein Primärschlüssel hat einen eindeutigen Index, beispielsweise eine Durchnummerierung. Es könnte aber auch eine Email Adresse sein. Wichtig ist, dass dieser Index nicht in einem anderen Datensatz vorkommt. Somit werden einzelnen Datensätze eindeutig identifizierbar.
Das Feld personalnummer soll als Primärschlüssel
dienen.
Wähle unter Index PRIMARY
Man kann den Primärschlüssel auch im Nachhinein festlegen. Wähle die Tabelle personen rechts aus, wähle oben den Karteireiter Struktur. In der erstellten Tabelle sieht man rechts die Option mehr. Wähle dort Primärschlüssel.
Lösche einen versehentlich gesetzten Primärschlüssel durch klicken auf löschen etwas weiter unten unter Indizies. Er hat dort den Schlüsselnamen PRiMARY
Mit den Buttons kann man Felder löschen. Man kann sie umbenennen oder auch ein neues Feld hinuzufügen. Dort gibt man an, vor oder hinter welchem Feld das neue Feld angelegt werden soll.
Autoincrement bedeutet, dass ein Wert sich automatisch erhöht, was bei einem numerischen Primärschlüssel-Feld sehr hilfreich ist, denn so kann man nicht versehentlich einen Wert 2 mal vergeben.
Aktiviere die Option A_I
Um nachträglich ein Feld auf Autoincrement zu setzen, klicke auf Struktur wähle das Feld aus, deren Wert automatisch erhöht werden soll, hier personalnummer. Klicke auf Bearbeiten. Es öffnet sich ein Fenster. Aktiviere die Option A_I. Achte darauf, dass bei Standard Kein(e) eingetragen ist. Unter Extras erscheint nun AUTO_INCREMENT
Um einen Autoincrement auf einen Wert zurück zu setzen
verwende in PHPmyAdmin / SQL:
ALTER TABLE 'tarot' AUTO_INCREMENT = 4;
Wähle die Tabelle und klicke oben auf den Karteireiter Operationen. Nun hat nan die Möglichkeit einen anderen Namen einzugeben.
Die Tabelle lässt sich unter Operationen auch in eine andere Datenbank kopieren.
Wählen sie die Tabelle rechts aus und Wählen Sie oben die Registerkarte Einfügen.
Nun hat man die Möglichkeit die Datensätze einzutragen. Folgendes ist zu beachten:Nach der Eingabe klicken sie auf den Button OK. Auf der Registerkarten Anzeigen lassen sich die Daten anzeigen. In der Ansicht kann man einen Datensatz Über Bearbeiten ändern.
Es wird eine SQL Anweisung angezeigt. Siehe auch Regeln SQL Anweisung
Wähle links eine Datenbank aus. Es erscheint die Datenbank Struktur Ansicht. Aktiviere eine der angezeigten Tabellen und wähle aus dem Auswahl-Menü unten wo markierte erscheint den Befehl optimiere Tabelle. Löscht man einen Datensatz so bleibt er im Hintergrund noch erhalten, wenn man eine Tabelle optimiert werden alle gelöschten Datensätze endgültig gelöscht.
Man findet in dem Auswahl-Menü noch viele andere Befehle wie: Tabelle löschen, Analysiere Tabelle, Repariere Tabelle uvm.
Den Inhalt einer Tabelle löscht man über Operationen / Tabelle leeren
Tabellen kann man über Exportieren, irgendwo abspeichern. Über importieren, kann man sie dann in jede beliebige Datenbank einfügen.
siehe auch SQL PHP einfach
Mit der SQL-Anweisung select
kann man eine Datenbankabfrage erzeugen. Damit werden die
Datensätze angezeigt. Wählt man eine Tabelle aus und klickt auf den Karteireiter Anzeigen,
erscheint oben auch der SQL Befehl die Select Anweisung: SELECT * FROM `personen`
Außerdem sieht man die Anzahl der gefunden Datensätze. Wurde kein Datensatz gefunden erscheint keine Select
Anweisung, sondern nur der Hinweis auf 0 Treffer.
Klickt man auf den Karteireiter Suche hat man weitere Möglichkeiten zu Filtern. Nach klick auf OK wird der SQL-Befehl angezeigt.
Klicke auch auf Optionen.
Man kann sich nur bestimmte Felder anzeigen lassen. Man kann Bedingungen definieren, wie Gehalt größer als 300. Man kann die Reihenfolge nach einem bestimmten Feld definieren, numerisch, alphabetisch absteigend, aufsteigend.
Bei der Auswahl durch WHERE können Vergleichsopertoren verwendet werden, wie man sie von Boolschen Werten und if-Bedingungen kennt.
Man kann auch mehrere Bedingungen verknüpfen mit folgenden Schlüsselworten:
Operator | Erklärung |
---|---|
not | Der Boolsche Wert wird umgekehrt |
and | Alle Bedingungen müssen zutreffen |
or | Mindestens eine der Bedingungen muss zutreffen |
Beispiel:
select * from personen where gehalt > 2000 and gehalt < 3000
Der Verleichsoperator like wird für Strings eingesetzt. Der Suchbegriff wird in Anführungszeichen gesetzt. Groß und Kleinschreibung wird nicht unterschieden.
Hierbei können auch Platzhalter (Wildcards) eingesetzt werden. Sie werden innerhalb der Anführungstriche notiert.
%
Prozentzeichen steht für eine beliebige Anzahl unbekannter Zeichen. Auch kein Zeichen ist
möglich._
Unterstrich steht für ein unbekanntes Zeichen"a%" | Alles was mit "a" oder "A" beginnt. |
"a_d%" | Das erste Zeichen ist "a" oder "A" dann folgt ein beliebiges Zeichen, gefolgt von einem "d" oder "D". Es können weitere Zeichen folgen. |
"%ol%" | Alles in dem "ol" vorkommt. Es kann auch am Anfang oder Ende stehen. |
Wähle eine Tabelle aus und wähle in einem bestimmten Datensatz den Button Bearbeiten.
Im sich öffnenden Fenster kann man nun Änderungen vornehmen. Ein Klick auf SQL Vorschau zeigt den
SQL-Befehl an:
UPDATE personen SET vorname = 'Sonja', name = 'Giese' WHERE personalnummer = 6
Hier wurde aus der Tabelle personen im Feld vorname der Wert auf "Sonja" geändert und unter name der Wert "Giese" geändert.
Würde der Zusatz WHERE
fehlen, hätten alle Felder vorname
den Wert "Sonja" und alle name
Felder den Wert "Giese";
Klicke auf den Karteireiter SQL und wähle unten den Button Update. Es erscheint eine Update Anweisung in der Anzeige. Diese kann man ändern. Durch klicken auf Abfrage simulieren bekommt man die Anzahl der gefundenen Datensätze angezeigt. Ein Klick auf OK führt die Anweisung aus.
UPDATE personen SET gehalt = 10000 WHERE gehalt > 10000
Hier werden alle Gehälter, die höher als 10000 sind auf 10000 gesetzt.
Wenn man einen numerischen Wert mathematisch verändern möchte, kann man auch Rechenopertoren verwenden. z.B.:
gehalt = gehalt * 0.98
Eine Gehaltskürzung von 2 Prozent. Hier die gesamte Zeile:
UPDATE personen SET gehalt = gehalt * 0.98 WHERE gehalt = 10000
Delete löscht Datensätze. Auch hier kann man einzelne Datensätze mit Klicken auf den Löschen Link
löschen und bekommt die SQL Anweisung angezeigt.
DELETE FROM personen WHERE personalnummer = 18;
Erst dann muss man sich endgültig entscheiden durch klicken auf OK.
Alternativ kann man auf SQL klicken und dann unten auf Löschen, um den angezeigten SQL Befehl zu ändern.
DELETE FROM `personen` WHERE personalnummer > 17
Alle Datensätze deren personalnummer größer als 17 ist werden gelöscht.
Ein Webprojekt erstellt man in der Regel auf dem heimischen Rechner und kopiert zur Veröffentlichung alles per FTP auf den Rechner des Providers (Strato, etc.). Auch die Tabellen der Datenbanken sollten lokal und auf dem Provider Rechner vorliegen. Hierzu muss man die Tabellen exportieren und importieren. siehe auch Datenbank Import Export
phpMyAdmin bietet die Möglichkeiten über den Karteireiter Exportieren.
Nach Klick auf OK wird die Tabelle ins Download Verzeichnis exportiert. Man kann sie mit einem Texteditor öffnen.
Die SQL Anweisungen, die man dort findet, kann man dazu nutzen, die Tabelle programmatisch in eine andere Datenbank zu importieren.
Einfacher ist es jedoch eine Datenbank beim Provider mit phpMyAdmin aufzurufen und dort über den Import Karteireiter die Tabelle zu importieren.
Wähle eine Datenbank aus und wähle Exportieren. Bestätige mit Okay. Die Datenbank wird ins Download Verzeichnis unter dem Namen der Datenbank und mit der Endung sql gespeichert.
Um die Datenbank irgendwo zu importieren erzeuge eine neue Datenbank und vergebe den gleichen Namen. Wähle dann Importieren und füge die Datei ein.
Man kann eine komplette Datenbank vom heimischen Rechner mittels phpMyAdmin exportieren. Sie liegt nach dem Export als Datei mit Endung .sql im Download Verzeichnis.
Bei Strato gibt es nur fertige Datenbanken, man kann keine eigenen Datenbanken erstellen sondern nur Tabellen. Man kann jedoch alle Tabellen einer Datenbank in die Strato Datenbank in einem Arbeitsvorgang importieren, indem man die Tabelle bei Strato auswählt und dann die gespeicherte Datenbank über "Importieren" importiert. Dann werden alle Tabellen in die Strato-Datenbank eingefügt.
Man kann in einem Feld Zeitwerte abspeichern. Näheres dazu unter Datum / Datenbank