MySQL mit PHP nutzen

Daten in MySQL einfügen

Nachdem wir die Datenbank und eine Tabelle erstellt haben, können wir beginnen diese mit Daten zu füllen.

Hier sind einige Syntax-Regeln denen zu folgen sind:

  • Die SQL Query muss in PHP zwischen Anführungszeichen stehen
  • Zeichenfolgen innerhalb der SQL Query muss in Anführungszeichen stehen
  • Numerische Werte werden ohne Anführungszeichen geschrieben
  • Das Wort NULL steht nicht zwischen Anführungszeichen

Das INSERT INTO Statement wird genutzt um eine neue Aufzeichnung in eine MySQL Tabelle einzufügen:

INSERT INTO tabellen_name (spalte1, spalte2, spalte3,...)
VALUES (wert1, wert2, wert3,...)

Im vorherigen Kapitel haben wir eine leere Tabelle mit dem Namen „MyGuests“ und fünf Spalten erstellt: „id“, „firstname“, „lastname“, „email“ and „reg_date“. Nun werden wir diese Tabelle mit Daten füllen.

Beachte: Wenn eine Spalte AUTO_INCREMENT (wie die Spalte „id“) oder TIMESTAMP (wie die Spalte „reg_date“) ist, ist es nicht nötig diese im SQL Query anzugeben – MySQL wird den Wert automatisch hinzufügen.

Das folgende Beispiel fügt der Tabelle „MyGuests“ einen neuen Eintrag hinzu:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', [email protected]')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>

Erhalte die ID des zuletzt hinzugefügten Eintrags

Wenn wir ein INSERT oder UPDATE in einer Tabelle mit einem AUTO_INCREMENT Feld durchführen, können wir sofort die ID des zuletzt eingefügten / aktualisierten Datensatzes erhalten.

In der Tabelle „MyGuests“, die Spalte „id“ ist ein AUTO_INCREMENT Feld:

CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)

Das folgende Beispiel ist identisch zu dem von oben, ausser dass wir eine einzige Zeile Code hinzugefügt haben um die ID des zuletzt hinzugefügteh Datensatz zu abzurufen. Wir echoen auch die zuletzt eingefügte ID:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', [email protected]')";
if ($conn->query($sql) === TRUE) {
$last_id = $conn->insert_id;
echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>

Mehrere Datensätze in MySQL einfügen

Mehrere SQL Statements müssen mit der mysqli_multi_query() Function ausgeführt werden.

Im folgenden Beispiel fügen wird der Tabelle „MyGuests“ drei neue Einträge hinzu:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', [email protected]');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', [email protected]');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', [email protected]')";
if ($conn->multi_query($sql) === TRUE) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>

Beachte, dass jedes SQL Statement mit einem Semicolon getrennt werden muss.