Transcript

MySQL-Befehle in PHP

Verbindung mit Datenbank herstellen:

include ("dbP.php"); $Verbindung = mysql_connect($db_host, $db_user, $db_passwd); if (!$Verbindung) { echo "Keine Verbindung zur Datenbank möglich!"; exit; }

Suchen und Anzeigen:

$Befehl = "SELECT Select-Ausdruck FROM TabellenName [WHERE Bedingung] [GROUP BY SpaltenName {,SpaltenName}] [HAVING Bedingung] [ORDER BY Select-Ausdruck [ASC|DESC]{,Select-Ausdruck [ASC|DESC]}] [LIMIT [Startzeile], Zeilenzahl]";

Ein Select-Ausdruck kann ein Spaltenname, eine Spaltenfunktion oder ein Alias-Name sein; häufig wird * benutzt um alles auszulesen.

Mit WHERE wird die Bedingung angegeben, die für die anzuzeigenden Datensätze gelten soll. Mehrere Bedingungen werden mit AND bzw. OR in Klammern zusammengefasst. Für die Bedingung können die folgenden Operatoren verwendet werden: +, -, *, /, =, != (ungleich), >, <, >=, <=, AND, OR, NOT, LIKE, BETWEEN, IN, IS NULL LIKE ermöglicht die Angabe eines Teils einer Zeichenkette, wobei % vor oder hinter dem String eine beliebige Anzahl beliebiger zusätzlicher Zeichen bedeutet. Groß- und Kleinschreibung ist dabei egal.

ORDER BY gibt die Sortierung nach der entsprechenden Tabellenspalte an, mit DESC absteigend, mit ASC aufsteigend sortiert. Mehrere Sortierungen werden durch Komma getrennt, wobei der vordere Wert die grundsätzliche Sortierung angibt.

Mit LIMIT gibt man an, wie viele und welche der vorhandenen Tabellenzeilen man benötigt. Soll bei der ersten Tabellenzeile (0) begonnen werden, so kann die Nummer der Startzeile auch entfallen. Die Anzahl der Zeilen (von der Startzeile aus) muss immer angegeben werden.

Beispiele:

$Befehl = "SELECT * FROM $db_name.buecher WHERE Genre=‘Schulbuch‘ ORDER BY Name ASC LIMIT 0,30"; $Befehl = "SELECT * FROM $db_name.buecher WHERE (Autorname LIKE ‘%san%‘ AND Genre=‘Schulbuch‘) ORDER BY Autorname ASC, Erscheinungsjahr DESC "; $Ergebnis = mysql_query($Befehl, $Verbindung); if (!$Ergebnis) die ("Es gibt keine solchen Bücher.");

Datensatz (bzw. Tabellenzeile) einfügen:

$Befehl = " INSERT INTO TabellenName SET SpaltenName=Wert{,SpaltenName=Wert}"; oder $Befehl = " INSERT INTO TabellenName (SpaltenName{,SpaltenName}) VALUES (Wert{, Wert})";

Beispiele:

$Befehl = "INSERT INTO $db_name.buecher SET Inventarnummer = '$Inventarnummer', Autorname = '$Autorname', Autorvorname = '$Autorvorname', Titel = '$Titel', Verlag ='$Verlag', Ort ='$Ort', Erscheinungsjahr = '$Erscheinungsjahr', Wertung = '$Wertung', Genre = '$Genre'"; oder $Befehl = "INSERT INTO $db_name.buecher (Inventarnummer, Autorname, Autorvorname, Titel, Verlag, Ort, Erscheinungsjahr, Wertung, Genre) VALUES ('$Inventarnummer', '$Autorname', '$Autorvorname', '$Titel', '$Verlag', '$Ort', '$Erscheinungsjahr', '$Wertung', '$Genre')"; $Ergebnis = mysql_query($Befehl, $Verbindung); if (!$Ergebnis) { echo "Einfügen fehlgeschlagen!"; } else { echo "Das Einfügen in die Datenbank war erfolgreich."; }

Datensätze (bzw. Tabellenzeilen) verändern:

$Befehl = " UPDATE TabellenName SET SpaltenName=Wert{,SpaltenName=Wert} [WHERE Bedingung] [ORDER BY Select-Ausdruck] [LIMIT Zeilenzahl]";

Ohne WHERE-Klausel werden alle Datensätze aktualisiert. Wenn die ORDER BY-Klausel vorhanden ist, werden die Datensätze in der angegebenen Reihenfolge aktualisiert. Die LIMIT-Klausel kann die Anzahl der zu aktualisierenden Datensätze beschränken.

Beispiele:

$Befehl = "UPDATE $db_name.buecher SET Wertung = '$Wertung' WHERE Erscheinungsjahr<1990"; $Ergebnis = mysql_query($Befehl, $Verbindung); if (!$Ergebnis) { echo "Die Änderung ist fehlgeschlagen!"; } else { echo "Die Änderung war erfolgreich."; }

Datensätze (bzw. Tabellenzeilen) löschen:

$Befehl = " DELETE FROM TabellenName [WHERE Bedingung] [ORDER BY Select-Ausdruck] [LIMIT Zeilenzahl]"; Die DELETE-Anweisung löscht die Datensätze aus TabellenName und gibt die Anzahl gelöschter Datensätze zurück. Sofern angegeben, bestimmt die WHERE-Klausel die Bedingungen dafür, welche Datensätze gelöscht werden. Ohne WHERE-Klausel werden alle Datensätze gelöscht. Wenn die ORDER BY-Klausel vorhanden ist, werden die Datensätze in der angegebenen Reihenfolge gelöscht. Die LIMIT-Klausel kann die Anzahl der zu löschenden Datensätze beschränken. Beispiele:

$Befehl = "DELETE FROM $db_name.buecher WHERE Inventarnummer <= 10"; $Ergebnis = mysql_query($Befehl, $Verbindung); if (!$Ergebnis) { echo "Löschen fehlgeschlagen!"; } else { echo "Das Löschen der Daten war erfolgreich."; }

Verbindung trennen:

mysql_free_result ($Ergebnis); mysql_close ($Verbindung);

Anmerkung zur hier benutzten Schreibweise: Ausdrücke, die in eckigen Klammern stehen, sind optional, d.h. sie können entfallen. Werden sie dagegen verwendet, so benutzt man sie ohne die eckigen Klammern. Wenn mehrere gleichartige Ausdrücke folgen können, wird ein gleichartiger Ausdruck in geschweiften Klammern dargestellt. Benutzt man mehrere solche Ausdrücke, so schreibt man sie tatsächlich ohne die geschweiften Klammern.


Recommended