Um mit PHP und SQL zu arbeiten sind einige Vorbereitungen erforderlich. PHP ist eine serverseitige Programmiersprache. Das heisst der Provider muss es unterstützen oder die Unterstützung auf dem System installiert / aktiviert sein.
Falls eine Datenbank verwendet werden soll muss eine Konfigurationsdatei angelegt werden in der die Zugangsdaten zur Datenbank gespeichert werden. Ein Beispiel:
<?php
$servername = „mysql33.1blu.de“;
$username = „s34xxxxxxxxxxxx“;
$password = „PLZxxxxxxxxxx“;
$dbname = „db344xxxxxxxxxxx“;
// Verbindung herstellen
$conn = new mysqli($servername, $username, $password, $dbname);
?>
Eine weitere Option:
So bekommt man einen Hinweis wenn die Verbindung zur sql Datenbank nicht funktioniert :
Die Rückgabe der Funktion mysqli_connect
wird in $db_link gespeichert. Diese enthält im Fall, dass es ein Problem gab, „FALSE“, ansonsten wenn die Verbindung geklappt hat, weitere Informationen.
<?php
require_once ('dbconnect.php');
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
?>
if ( $db_link )
{
echo 'Verbindung erfolgreich: ';
print_r( $db_link);
}
else
{
// hier sollte dann später dem Programmierer eine
// E-Mail mit dem Problem zukommen gelassen werden
die('keine Verbindung möglich: '.mysqli_error());
}
?>
// Damit alle Fehler angezeigt werden
error_reporting(E_ALL);
In der entsprechenden Datei, die die Daten von der PHP-Datei verwenden soll muss vor dem HTML Code folgendes angegeben werden:
<?php
include("dbconnect.php");
?>
<!DOCTYPE html><body><h1>TO DO Liste</h1>
</body></html>
Es gibt natürlich SQL-Befehle aber die Software PHPMyAdmin ist eine grafische Oberfläche mit der man die Datenbanken bearbeiten kann. Eine Datenbank wird in Tabellen , Spalten und Reihen unterteilt.
Die Konfigurationsdatei wird in der PHP Datei verlinkt:
require_once
("config.inc.php");
Um mit einem HTML Formular zu arbeiten in Kombination mit PHP ist folgender Code erforderlich:
- Das HTML-Formular selbst: Du benötigst ein HTML-Formular, in dem die Benutzer ihre Daten eingeben können. Das Formular kann Textfelder, Dropdown-Menüs, Optionsfelder usw. enthalten, je nachdem, welche Art von Daten du erfassen möchtest.
- Die PHP-Verarbeitung: Du musst ein PHP-Skript haben, das die eingegebenen Formulardaten verarbeitet, sobald das Formular abgeschickt wurde. Das PHP-Skript kann die Daten in einer Datenbank speichern, sie in einer Datei speichern, per E-Mail versenden oder anderweitig verarbeiten.
- Formularaktion und -methode: Im Formular muss die Aktion (URL des PHP-Skripts) und die Methode (GET oder POST) festgelegt werden. Die Aktion ist die Adresse des PHP-Skripts, das die Formulardaten verarbeitet. Die Methode bestimmt, wie die Daten an den Server übermittelt werden (GET für URL-Parameter oder POST für sicherere Datenübertragung).
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>HTML Formular mit PHP</title>
</head>
<body>
<h1>Formular mit PHP verarbeiten</h1>
<form action="verarbeitung.php" method="POST">
<label for="vorname">Vorname:</label>
<input type="text" id="vorname" name="vorname" required>
<br>
<label for="nachname">Nachname:</label>
<input type="text" id="nachname" name="nachname" required>
<br>
<input type="submit" value="Absenden">
</form>
</body>
</html>
<!-- verarbeitung.php -->
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
// Hier kannst du die Daten verarbeiten, z.B. in einer Datenbank speichern oder eine E-Mail versenden
// ...
// Eine einfache Rückmeldung an den Benutzer
echo "Vielen Dank, " . $vorname . " " . $nachname . ", für deine Einsendung!";
}
?>
Wenn ein Benutzer das Formular ausfüllt und absendet, werden die eingegebenen Daten an das verarbeitung.php
-Skript übermittelt. In diesem Skript können die Daten verarbeitet und eine Rückmeldung an den Benutzer gesendet werden.
Autoincrement ist eine Hilfsfunktion die mittlerweile in die meisten Datenbanken einzug gehalten hat. Ganzzahlige Datenbankfelder in MySQL können mit dem Attribut auto_increment versehen werden. Wird über die betreffende Tabelle eine INSERT-Query ausgeführt, so wird automatisch der Wert des mit auto_increment gekennzeichneten Feldes um Eins erhöht (inkrementiert), ohne dass dieses in der INSERT-Query explizit angegeben werden muss bzw. darf. Auch In PHPMyAdmin kann ein Autoincrement Feld erstellt werden.
Es wird nicht immer gleich erkannt weil der Begriff nicht voll zu sehen ist. Das Feld im dem A …I steht für das Autoincrement
Wie kann ich die Eingaben der Textfelder in eine MySQL Datenbank einfügen?
Um die Eingaben aus den Textfeldern in eine MySQL-Datenbank einzufügen, musst du einige Schritte ausführen:
- Verbindung zur Datenbank herstellen: Zuerst musst du eine Verbindung zur MySQL-Datenbank herstellen. Dafür verwendest du PHP und die in der Datei
config-typeitin.php
definierten Verbindungsinformationen.
<?php
require_once 'config-typeitin.php';
// Verbindung zur Datenbank herstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Überprüfen, ob die Verbindung erfolgreich hergestellt wurde
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
- Daten vorbereiten: Die eingegebenen Daten sollten vor dem Einfügen in die Datenbank sicher vorbereitet werden, um SQL-Injection-Angriffe zu verhindern. Dafür kannst du die
mysqli_real_escape_string()
-Funktion verwenden.
<?php
$kurzbezeichnung = mysqli_real_escape_string($conn, $_GET["kurzbezeichnung"]);
$eingabe = mysqli_real_escape_string($conn, $_GET["eingabe"]);
?>
- SQL-Abfrage vorbereiten und ausführen: Du musst eine SQL-Abfrage vorbereiten, um die Daten in die Datenbank einzufügen.
<?php
$sql = "INSERT INTO typeitin (kurzbezeichnung, eingabe) VALUES ('$kurzbezeichnung', '$eingabe')";
if ($conn->query($sql) === TRUE) {
echo "Datensatz erfolgreich eingefügt";
} else {
echo "Fehler beim Einfügen des Datensatzes: " . $conn->error;
}
?>
Achte darauf, INSERT INTO typeitin durch den tatsächlichen Namen der Tabelle in deiner Datenbank zu ersetzen.
Daten einer Tabelle anzeigen lassen
// Anzeige der Einträge aus der 'todo'-Tabelle
$_anzeige = "SELECT * FROM todo";
$result = $conn->query($_anzeige);
// SQL-Abfrage, um alle Daten aus der Tabelle 'todo' abzurufen
$sql = "SELECT * FROM todo";
$result = $conn->query($sql);
- Datenbankverbindung schließen: Nachdem du die Daten eingefügt hast, ist es wichtig, die Verbindung zur Datenbank zu schließen.
<?php
$conn->close();
?>
Es ist auch sehr wichtig, sich über die Sicherheit Gedanken zu machen. In deinem aktuellen Code scheint es, dass die Eingabewerte direkt aus den GET-Parametern genommen werden. Dies kann zu SQL-Injection-Anfälligkeiten führen. Das Verwenden von mysqli_real_escape_string()
hilft dabei, SQL-Injection zu verhindern, aber es ist ratsam, sich mit vorbereiteten Anweisungen (prepared statements) auseinanderzusetzen, da sie eine noch sicherere Methode sind.