WebImpressionen
Insert into

Einfügen von Daten mit INSERT INTO

Erstellen einer SQL-Abfrage mit der INSERT INTO-Anweisung.
SQL-Abfrage ausführen, indem sie an die entsprechende php-Funktion "mysqli-query" übergeben wird, um Datensätze in eine Tabelle einzufügen.

In diesem Beispiel wird eine neue Zeile in die Tabelle "personen" eingefügt,
indem Werte für die Felder vor_name, name und mail angegeben werden.

 
<?php
// Verbindung zur Datenbank einfügen
1
$sql = " INSERT INTO personen ( vor_name, name, mail ) values ( 'Peter', 'Maier', 'petermaier@mail.de' )";
2
if ( mysqli_query ( $link, $sql )) {
3
echo " Datensatz erfolgreich eingefügt. ";
4
} else {
5
echo " FEHLER: " . $sql . " konnte nicht ausgeführt werden. " . $mysqli -> error ;
6
}
7
mysqli_close ( $link ) ;
 
?>
 
<?php
// Verbindung zur Datenbank einfügen
1
$sql = " INSERT INTO personen ( vor_name, name, mail ) values ( 'Peter', 'Maier', 'petermaier@mail.de' )";
2
if ( $mysqli -> query ( $sql ) === true) {
3
echo " Datensatz erfolgreich eingefügt. ";
4
} else {
5
echo " FEHLER: " . $sql . " konnte nicht ausgeführt werden. " . $mysqli -> error ;
6
}
7
$mysqli -> close () ;
 
?>

Einfügen mehrerer Zeilen in eine Tabelle

Es können auch mehrere Zeilen mit einer einzigen Einfügeabfrage gleichzeitig in eine Tabelle eingefügt werden.
Dazu werden mehrere Listen mit Spaltenwerten in die INSERT INTO-Anweisung eingefügt,
wobei die Spaltenwerte für jede Zeile in Klammern und durch Kommas getrennt sein müssen.

 
<?php
// Verbindung zur Datenbank einfügen
1
$sql = " INSERT INTO personen ( vor_name, name, mail ) values
2
( 'Udo', 'Schmidt', 'udoschmidt@mail.de' ),
3
( 'Frank', 'Meier', 'frankmeier@mail.de' ),
4
( 'Peter', 'Mayer', 'petermayer@mail.de' ),
5
( 'Hans', 'Schmid', 'hansschmid@mail.de' )";
6
if ( mysqli_query ( $link, $sql )) {
7
echo " Datensätze wurden erfolgreich hinzugefügt. ";
8
} else {
9
echo " FEHLER: " . $sql . " konnte nicht ausgeführt werden. " . $mysqli -> error ;
10
}
11
mysqli_close ( $link ) ;
 
?>
 
<?php
// Verbindung zur Datenbank einfügen
1
$sql = " INSERT INTO personen ( vor_name, name, mail ) values
2
( 'Udo', 'Schmidt', 'udoschmidt@mail.de' ),
3
( 'Frank', 'Meier', 'frankmeier@mail.de' ),
4
( 'Peter', 'Mayer', 'petermayer@mail.de' ),
5
( 'Hans', 'Schmid', 'hansschmid@mail.de' )";
6
if ( $mysqli -> query ( $sql ) === true) {
7
echo " Datensätze wurden erfolgreich hinzugefügt. ";
8
} else {
9
echo " FEHLER: " . $sql . " konnte nicht ausgeführt werden. " . $mysqli -> error ;
10
}
11
$mysqli -> close () ;
 
?>

Daten aus einem HTML-Formular in eine MySQL-Datenbank einfügen

Schritt 1: Erstellen des HTML-Formulars

Hier ist ein einfaches HTML-Formular mit drei Textfeldern und einer Senden-Schaltfläche.

Html - Formular
// html 5 - kopf hier einfügen
1
<form action="insert.php" method="post">
2
<p>
3
<label for="vor_name"> Vorname: </label>
4
<input type="text" name="vor_name" id="vor_name"/>
5
</p>
6
<p>
7
<label for="name"> Name: </label>
8
<input type="text" name="name" id="name"/>
9
</p>
10
<p>
11
<label for="mail"> eMail: </label>
12
<input type="email" name="mail" id="mail"/>
13
</p>
14
<input type="submit" value="Senden"/>
15
</form>
// html - ende hier einfügen

Dies ist ein sehr einfaches Beispiel für das Einfügen von Formulardaten in eine MySQL-Datenbanktabelle.
Dieses Beispiel kann erweitert und interaktiver gestaltet werden, indem den Benutzereingaben Validierungen hinzugefügt werden, bevor sie in die Datenbanktabelle eingefügt werden.

Schritt 2: Die "insert.php"

Die Datei "insert.php" stellt eine Verbindung zum MySQL-Datenbankserver her,
ruft Formularfelder mit den php-Variablen "$_REQUEST" ab und führt die Einfügeabfrage aus,
um die Datensätze hinzuzufügen.

 
<?php
// Verbindung zur Datenbank einfügen
1
$vor_name = mysqli_real_escape_string ( $link, $_REQUEST [' vor_name '] );
2
$name = mysqli_real_escape_string ( $link, $_REQUEST [' name '] );
3
$mail = mysqli_real_escape_string ( $link, $_REQUEST [' mail '] );
4
$sql = " INSERT INTO personen ( vor_name, name, mail ) values ( '$vor_name', '$name', '$mail' )";
5
if ( mysqli_query ( $link, $sql )) {
6
echo " Datensatz erfolgreich eingefügt. ";
7
} else {
8
echo " FEHLER: " . $sql . " konnte nicht ausgeführt werden. " . $mysqli -> error ;
9
}
10
mysqli_close ( $link ) ;
 
?>
Die Funktion mysqli_real_escape_string () maskiert Sonderzeichen in einer Zeichenfolge und erstellt eine zulässige SQL-Zeichenfolge, um die Sicherheit gegen SQL-Injection zu gewährleisten.
 
<?php
// Verbindung zur Datenbank einfügen
1
$vor_name = $mysqli -> real_escape_string ( $_REQUEST [' vor_name '] );
2
$name = $mysqli -> real_escape_string ( $_REQUEST [' name '] );
3
$mail = $mysqli -> real_escape_string ( $_REQUEST [' mail '] );
4
$sql = " INSERT INTO personen ( vor_name, name, mail ) values ( '$vor_name', '$name', '$mail' )";
5
if ( $mysqli -> query ( $sql ) === true) {
6
echo " Datensatz erfolgreich eingefügt. ";
7
} else {
8
echo " FEHLER: " . $sql . " konnte nicht ausgeführt werden. " . $mysqli -> error ;
9
}
10
$mysqli -> close () ;
 
?>
Die Funktion mysqli -> real_escape_string () maskiert Sonderzeichen in einer Zeichenfolge und erstellt eine zulässige SQL-Zeichenfolge, um die Sicherheit gegen SQL-Injection zu gewährleisten.