Datenbanken befüllen, php-Regeln

Mit einem html-Formular kann man Datenbank-Einträge anlegen lassen.

Ich habe dazu ein Formular erstellt und mit Bootstrap formatiert. In <form> wird eine action geschrieben, bei mir heißt es request.php. Dieses php-Dokument wird aufgerufen, wenn er Benutzer auf den Button „absenden“ klickt und bekommt alle eingegebenen Werte als Variablen übergeben, die es dann in die Datenbank schreiben kann.

Dazu ist es wichtig, dass JEDES Input-Element einen eindeutigen Namen hat. Da es in diesem Projekt gerade um die Erfassung eines Sitzplanes geht, habe ich viiieeeele Inputfelder, und leider habe ich erst gedacht, man bräuchte nur eine eindeutige ID. Die ID ist aber für den Aufruf der labels, nicht für die Übergabe der Daten.

Zum Inhalt der Datenbankübergabe hilft php.net – ich nutze immer noch PDO.

In php nutzt man Hochkommata, um Strings zu erzeugen. Setzt man doppelte Hochkommata, kann man Variablennamen direkt nutzten, bei einfachen Hochkommata muss man den String unterbrechen und die Variablen „einpuzzeln“ – die Connectoren dabei sind Punkte, also z.B. ‚blafa‘.$var1.’blafarai‘ ; Dieses Verfahren funktioniert auch bei Funktionen, die einen Rückgabewert haben, statt einer Variablen in der Mitte. Ebenso kann man Variablen/Funktionen mit Rückgabe aneinder reihen, um einen neuen String zu erzeugen, wie etwa in diesem Befehl: $db=new PDO( $dsn.$db_user.$db_pwd).

Mit -> wird auf einem Objekt eine Funktion ausgeführt. In den runden Klammern dahinter stehen die Parameter für diese Funktion.

Man bereitet eine Aufforderung an eine Datenbank zunächst vor, dazu kann man ->query() oder ->prepare() nutzen. Prepare hat den Vorteil, dass man dann später vor der eigentlichen Ausführung die betroffenen Tabellen mit ->beginTransaction sperren kann, damit nicht zwei Leute gleichzeitig was ändern und dann Fehler in den Daten erzeugen. Das ist aber unrelevant, wenn eh immer nur eine Person zur Zeit die Tabelle bearbeiten wird, dann ist query (laut Michaels Meiung) schöner.

Die eigentliche Befehlsaufführung erfolgt mit ->execute(Daten zur Übergabe hier rein schreiben, in der Reihenfolge der genutzten ? in dem Datenbankbefehl).

Zur Ausage von allem, was man so hat (Fehlersuche!) hilft var_dump.

Mich interessierte ja immer noch die if-Sache, also habe ich es mir angeschaut und diese Seite gefunden.

Und der nächste Eintrag erzählt dann, wie wird feststellen, ob es einen Eintrag in der Datebank schon gibt und ihn anlegen, wenn es ihn noch nicht gibt.

Übrigens: Wir haben in 24h 15GB Datenvolumen geleert. Für das Einrichten eines Raspis und das Nachschlagen von Code und ein bisschen Netflix fürs Kind. Wow. Hoffentlich macht Wilhelm.tel morgen unser Internet heile.

Kommentar verfassen