English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP-Basis-Tutorial

PHP-Advanced-Tutorial

PHP & MySQL

PHP-Referenzhandbuch

PHP-MySQL-Daten einfügen

In diesem Tutorial werden Sie lernen, wie man mit PHP Datensätze in MySQL-Tabellen einfügt.

Daten in MySQL-Datenbanktabellen einfügen

Jetzt haben Sie gelernt, wie man Datenbanken und Tabellen in MySQL erstellt. In diesem Tutorial werden Sie lernen, wie man SQL-Abfragen ausführt, um Datensätze in Tabellen einzufügen.

INSERT INTOverwendet wird, um neue Zeilen in einer Datenbanktabelle einzufügen.

Lassen Sie uns eine SQL-Anfrage mit den richtigen Werten ausführen, indem wir die INSERT-Anfrage an die PHP mysqli_query()-Funktion übergeben. Anschließend führen wir die INSERT-Anfrage aus, um Daten in die Tabelle einzufügen. Hier ist ein Beispiel, das durch Angabefirst_name,last_nameundemailDer Wert des Felds wird in diepersonsZeile in die Tabelle einfügen.

Beispiel: Prozeduraler Ansatz

<?php
$link = mysqli_connect("localhost", "root", "", "demo");
 
// Überprüfen Sie die Verbindung
if($link === false){
    die("Fehler: Verbindung nicht möglich. " . mysqli_connect_error());
}
 
//Versuchen Sie, die Einfügeabfrage auszuführen
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')";
if(mysqli_query($link, $sql)){
    echo "Erfolg: Eintrag erfolgreich. ";
}
    echo "Fehler: Die Ausführung von $sql konnte nicht durchgeführt werden." . mysqli_error($link);
}
 
//Verbindung schließen
mysqli_close($link);
?>

Beispiel: Objektorientierte Art

<?php
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Überprüfen Sie die Verbindung
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);
}
 
//Versuchen Sie, die Einfügeabfrage auszuführen
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')";
if($mysqli-if(query($sql) === true){
    echo "Erfolg: Eintrag erfolgreich. ";
}
    echo "Fehler: Die Ausführung von $sql konnte nicht durchgeführt werden." . $mysqli;->error;
}
 
//Verbindung schließen
$mysqli->close();
?>

Beispiel: PDO-Verfahren

<?php
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //PDO-Fehlermodus auf Ausnahme setzen
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
});
    die("ERROR: Could not connect. " . $e->getMessage());
}
 
//Versuchen Sie, die Einfügeabfrage auszuführen
try{
    $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')";    
    $pdo->exec($sql);
    echo "Erfolg: Eintrag erfolgreich. ";
});
    die("Fehler: Die Ausführung von $sql ist fehlgeschlagen. ". $e->getMessage());
}
 
//Verbindung schließen
unset($pdo);
?>

Wenn Sie sich erinnernInhalt des vorherigen KapitelsdassidDas Feld ist mit dem AUTO_INCREMENT-Symbol markiert. Der Modifier teilt MySQL mit, dass wenn der Wert nicht angegeben wird, der vorletzte Wert erhöht wird1um einen Wert automatisch für dieses Feld zu vergeben.

Mehrere Zeilen in der Tabelle einfügen

Sie können auch mehrere Zeilen in die Tabelle einfügen, indem Sie eine einzige INSERT-Anfrage verwenden. Hierzu müssen Sie mehrere Wertelisten in der INSERT INTO-Anweisung angeben, wobei jede Zeile durch Klammern und Kommas eingefasst und getrennt ist.

Lassen Sie uns inpersonsFügen Sie einige Zeilen in die Tabelle ein, wie folgt:

Beispiel: Prozeduraler Ansatz

<?php
$link = mysqli_connect("localhost", "root", "", "demo");
 
//Überprüfen Sie die Verbindung
if($link === false){
    die("Fehler: Verbindung nicht möglich. " . mysqli_connect_error());
}
 
//Versuchen Sie, die Einfügeabfrage auszuführen
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES
            ('John', 'Rambo', '[email protected]'),
            ('Clark', 'Kent', '[email protected]'),
            ('John', 'Carter', '[email protected]'),
            ('Harry', 'Potter', '[email protected]')";
if(mysqli_query($link, $sql)){
    echo "Eintrag hinzugefügt.";
}
    echo "Fehler: Die Ausführung von $sql konnte nicht durchgeführt werden." . mysqli_error($link);
}
 
//Verbindung schließen
mysqli_close($link);
?>

Beispiel: Objektorientierte Art

<?php
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Überprüfen Sie die Verbindung
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);
}
 
//Versuchen Sie, die Einfügeabfrage auszuführen
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES
            ('John', 'Rambo', '[email protected]'),
            ('Clark', 'Kent', '[email protected]'),
            ('John', 'Carter', '[email protected]'),
            ('Harry', 'Potter', '[email protected]')";
if($mysqli-if(query($sql) === true){
    echo "Erfolg: Eintrag erfolgreich. ";
}
    echo "Fehler: Die Ausführung von $sql konnte nicht durchgeführt werden." . $mysqli;->error;
}
 
//Verbindung schließen
$mysqli->close();
?>

Beispiel: PDO-Verfahren

<?php
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //PDO-Fehlermodus auf Ausnahme setzen
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
});
    die("Fehler: Verbindung nicht möglich. " . $e->getMessage());
}
 
//Versuchen Sie, die Einfügeabfrage auszuführen
try{
    $sql = "INSERT INTO persons (first_name, last_name, email) VALUES
            ('John', 'Rambo', '[email protected]'),
            ('Clark', 'Kent', '[email protected]'),
            ('John', 'Carter', '[email protected]'),
            ('Harry', 'Potter', '[email protected]')";   
    $pdo->exec($sql);
    echo "Erfolg: Eintrag erfolgreich. ";
});
    die("Fehler: Die Ausführung von $sql ist fehlgeschlagen. ". $e->getMessage());
}
 
//Verbindung schließen
unset($pdo);
?>

Jetzt, wechseln Sie zu phpMyAdmin (http://localhost//,Demonstrationin der DatenbankPersonenTabelle Daten. Sie werden feststellenIDDer Wert der Spalte "ID" wird durch das Hinzufügen des vorherigenIDWert erhöhen1automatisch zugewiesen werden.

Hinweis: SQL-Anweisungen können so viele Zeilenumbrüche enthalten, wie sie möchten, vorausgesetzt, dass keine Zeilenumbrüche Schlüsselwörter, Werte, Ausdrücke usw. beschädigen.

Daten aus einem HTML-Formular in die Datenbank einfügen

Im letzten Abschnitt haben wir erfahren, wie man Daten aus einem PHP-Skript in die Datenbank einfügt. Jetzt werden wir sehen, wie man Daten aus einem HTML-Formular in die Datenbank einfügt. Lassen Sie uns ein HTML-Formular erstellen, das verwendet werden kann, um neue Einträge inPersonenTabelle.

Schritte1Erstellen Sie ein HTML-Formular

Dies ist ein einfaches HTML-Formular, das drei Textfelder und einen Submit-Button enthält.<input>Felder und einen Submit-Button.

!DOCTYPE html>
<html>
head>
<meta charset="UTF-8">
<title>Daten hinzufügen Formular</title>
</head>
<form action="insert.php" method="post">
    <p>
        <label for="firstName">Vorname:</label>/label>
        <input type="text" name="first_name" id="firstName">
    </p>
    <p>
        <label for="lastName">Nachname:</label>/label>
        <input type="text" name="last_name" id="lastName">
    </p>
    <p>
        <label for="emailAddress">E-Mail-Adresse:</label>/label>
        <input type="text" name="email" id="emailAddress">
    </p>
    <input type="submit" value="Submit">
</form>
</html>
Testen Sie es heraus‹/›

Schritte2Daten abrufen und einfügen

Im obigen Beispiel wird, wenn der Benutzer auf die Schaltfläche "Daten hinzufügen" des HTML-Formulars klickt, die Formulardaten an die Datei "insert.php" gesendet. Die Datei "insert.php" verbindet sich mit dem MySQL-Datenbankserver, verwendet die PHP-Variable $_REQUEST, um die Formularfelder abzurufen und führt schließlich eine INSERT-Anfrage aus, um die Daten hinzuzufügen. Dies ist der vollständige Code unserer Datei "insert.php":

Beispiel: Prozeduraler Ansatz

<?php
$link = mysqli_connect("localhost", "root", "", "demo");
 
//Überprüfen Sie die Verbindung
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
//Um die Sicherheit zu gewährleisten, wird die Benutzerinput escaped.
$first_name = mysqli_real_escape_string($link, $_REQUEST['first_name']);
$last_name = mysqli_real_escape_string($link, $_REQUEST['last_name']);
$email = mysqli_real_escape_string($link, $_REQUEST['email']);
 
//Versuchen Sie, die Einfügeabfrage auszuführen
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')";
if(mysqli_query($link, $sql)){
    echo "Eintrag hinzugefügt.";
}
    echo "Fehler: Die Ausführung von $sql konnte nicht durchgeführt werden." . mysqli_error($link);
}
 
//Verbindung schließen
mysqli_close($link);
?>

Beispiel: Objektorientierte Art

<?php
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Überprüfen Sie die Verbindung
if($mysqli === false){
    die("Fehler: Die Verbindung konnte nicht hergestellt werden. " . $mysqli;->connect_error);
}
 
//Um die Sicherheit zu gewährleisten, wird die Benutzerinput escaped.
$first_name = $mysqli->real_escape_string($_REQUEST['first_name']);
$last_name = $mysqli->real_escape_string($_REQUEST['last_name']);
$email = $mysqli->real_escape_string($_REQUEST['email']);
 
//Versuchen Sie, die Einfügeabfrage auszuführen
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')";
if($mysqli-if(query($sql) === true){
    echo "Erfolg: Eintrag erfolgreich. ";
}
    echo "Fehler: Die Ausführung von $sql konnte nicht durchgeführt werden." . $mysqli;->error;
}
 
//Verbindung schließen
$mysqli->close();
?>

Beispiel: PDO-Verfahren

<?php
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //PDO-Fehlermodus auf Ausnahme setzen
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
});
    die("Fehler: Verbindung kann nicht hergestellt werden. ". $e->getMessage());
}
 
//Versuchen Sie, die Einfügeabfrage auszuführen
try{
    //Vorbereitete Anweisung CREATE
    $sql = "INSERT INTO persons (first_name, last_name, email) VALUES (:first_name, :last_name, :email)";
    $stmt = $pdo->prepare($sql);
    
    //Parameter an die Anweisung binden
    $stmt->bindParam(':first_name', $_REQUEST['first_name']);
    $stmt->bindParam(':last_name', $_REQUEST['last_name']);
    $stmt->bindParam(':email', $_REQUEST['email']);
    
    //Ausführung der vorbereiteten Anweisung
    $stmt->execute();
    echo "Erfolg: Eintrag erfolgreich. ";
});
    die("Fehler: Die Ausführung von $sql ist fehlgeschlagen. ". $e->getMessage());
}
 
// Verbindungsabschluss
unset($pdo);
?>

Im nächsten Kapitel erweitern wir dieses Einfüge-Abfrage-Beispiel und implementierenVorbereitete Anweisungenum die Sicherheit und Leistung weiter zu verbessern und sie weiter zu entwickeln.

Hinweis:Die Funktion mysqli_real_escape_string() entzieht spezielle Zeichen aus Zeichenfolgen und erstellt gültige SQL-Zeichenfolgen, um vorSQL-InjectionSicherheit.

Dies ist ein sehr einfaches Beispiel zum Einfügen von Formulardaten in eine MySQL-Datenbanktabelle. Sie können dieses Beispiel erweitern, um es interaktiver zu machen, indem Sie die Validierung der Benutzerinput hinzufügen, bevor Sie sie in die Datenbanktabelle einfügen. Weitere Informationen finden Sie unterPHP-FormularvalidierungAnleitung, um mehr über die Verwendung von PHP zur Bereinigung und Validierung von Benutzerinput zu erfahren.