ferrytoweb.info


Daten für die Tabelle


Erstellt man eine Tabelle mit dem CREATE TABLE-Statement, so ist die Tabelle zwar in der Datenbnak vorhanden, enthält aber noch keine Daten.
Tabellen werden zeilenweise mit Daten gefüllt. Wir wissen, dass die Zeile einer Tabelle genau ein Entity beschreibt. Man trägt also die Daten eines Entity als Zeile in die Tabelle ein. Statt »Zeile« werden Begriffe wie Datensatz oder Record verwendet.
Mit dem Statement INSERT INTO kann man einen Datensatz in eine Tabelle einschreiben. Das wird in diesem Abschnitt anhand eines Eintrags eines Kunden in die Tabelle KUNDE genau erklärt.

Einen Kunden in die Tabelle "Kunde" eintragen

Wir machen es jetzt mal umgekehrt: Wir beschreiben zuerst das SQL-Statement, und erst danach zeigen wir, wie es als PHP-Programm funktioniert.
INSERT INTO Tabellenname (Liste mit Spaltennamen)
VALUES (Liste mit dazu passenden Werten)
Das ist eine ganz allgemeine Beschreibung des Statements INSERT INTO. Es dient zum Einschreiben genau eines Datensatzes in die Tabelle, deren Name hinter INTO steht.
Die Felder das Datensatzes (also der Tabellenzeile) werden nach den Namen der Tabellenspalten benannt. Eigentlich sind die Namen bekannt, denn sie wurden ja beim Erstellen der Tabelle (Statement CREATE TABLE) festgelegt.
In unserem Fall brauchen wir nicht alle Felder mit Werten füllen, denn die Spalte PSK (der Primärschlüssel) erhält seine Werte ja automatisch. Also tragen wir in die runden Klammern nach dem Tabellennamen nur die Spaltennamen ein, für die wir Werte bereitstellen wollen. Die Namen werden mit Komma getrennt
Die Reihenfolge der Namen ist egal. Wir müssen nur die Werte hinter VALUES als Liste in der passenden Reihenfolge angeben. Eine Liste in SQL verwendet immer das Komma als Trennzeichen. Wir nehmen das erste Kunden-Beispiel aus dem Abschnitt ERM, und danach sieht unser Statement so aus:
INSERT INTO Kunde (loginname, passwort, name, vorname, email)
VALUES ('jojo44','jojo44pwd','Krause','Sabine','krause@example.com')

Das PHP-Script insertrecord1.php

In diesem Script wurde das Ausführen des oben formulierten INSERT-Statements mit PHP programmiert.
<?php
//
// insertrecords1.php
// 

# Datenbank-Session eröffnen
$myfirstdb = new SQLite3('myfirstdb.db');

# erster Teil des INSERT-Statements
$InsPartKunde = 'insert into Kunde (loginname, passwort, name, vorname, email)';

# zweiter Teil des INSERT-Statements
$InsKunde01 = "values ('jojo44'
                      ,'jojo44pwd'
                      ,'Krause'
                      ,'Sabine'
                      ,'krause@example.com'
                      )";

$myfirstdb->exec($InsPartKunde.$InsKunde01);

print "Letzte Primärschlüsselwert: ". $myfirstdb->lastInsertRowId()."\n";

$myfirstdb->close();
# Datenbank-Session beendet

?>
Dass wir anfangs durch Erzeugen eines SQLite3-Objekts die Verbindung zu unserer Datenbank herstellen müssen und am Ende die Verbindung mit der Objektmethode close() wieder beenden, das wissen wir schon.

Script insertrecord1.php ausführen

C:\xampp\htdocs\Versuche\PHP>php insertrecord1.php
Letzte Primärschlüsselwert: 1

C:\xampp\htdocs\Versuche\PHP>