Wo ist das Problem mit dem PHP Code?
Das Programm sollte eigentlich die Daten in die Datenbank inserieren, jedoch kommt nur diese Fehlermeldung. Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\xampp\htdocs\Website\registrieren.php:82 Stack trace: #0 C:\xampp\htdocs\Website\registrieren.php(82): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\Website\registrieren.php on line 82
Ich habe sehr lang auf den Code geschaut, jedoch kein Fehler gefunden.
Danke im vorraus!
Hier ist mein Code(nur der php Part, da die Frage sonst zu lange ist).
Das mit $_Esel und :Datum habe ich geändert, trotzdem funktioniert es irgendwie nicht.
<?php
session_start();
?>
<?php
if (!empty($_POST["submit"])){
require("mysql.php");
$_user = $_POST["Benutzername"];
$_passwort = $_POST["Passwort"];
$_email = $_POST["E-Mail"];
$_straße = $_POST["Straße"];
$_hausnummer = $_POST["Hausnummer"];
$_plz = $_POST["PLZ"];
$_ort = $_POST["Ort"];
$stmt = $mysql->prepare("INSERT INTO accounts (USERNAME, PASSWORT, EMAIL, STRAßE, HAUSNUMMER, PLZ, ORT) VALUES (:user, :passwort, :email, :straße, :hausnummer, :plz, :ort)");
$stmt->bindParam(":user", $_user);
$stmt->bindParam(":passwort", $_passwort);
$stmt->bindParam(":email", $_email);
$stmt->bindParam(":straße", $_straße);
$stmt->bindParam(":hausnummer", $_hausnummer);
$stmt->bindParam(":plz", $_plz);
$stmt->bindParam(":Datum", $_Esel);
$stmt->execute();
}
?>
2 Antworten

Es gibt den Parameter Datum nicht. Und $_Esel ist ebenso undeklariert.
Du hast den Ort nicht gebunden.

Da hat wohl jemand viel Humor ^^'
Ist die Aufgabe von deinem Lehrer?


Es geht irgendwie immer noch nicht. Oder habe ich noch etwas übersehen?
Es kommt auch immer noch dieselbe Fehlermeldung.
<?php
session_start();
?>
<?php
if (!empty($_POST["submit"])){
require("mysql.php");
$_user = $_POST["Benutzername"];
$_passwort = $_POST["Passwort"];
$_email = $_POST["E-Mail"];
$_straße = $_POST["Straße"];
$_hausnummer = $_POST["Hausnummer"];
$_plz = $_POST["PLZ"];
$_ort = $_POST["Ort"];
$stmt = $mysql->prepare("INSERT INTO accounts (USERNAME, PASSWORT, EMAIL, STRAßE, HAUSNUMMER, PLZ, ORT) VALUES (:user, :passwort, :email, :straße, :hausnummer, :plz, :ort)");
$stmt->bindParam(":user", $_user);
$stmt->bindParam(":passwort", $_passwort);
$stmt->bindParam(":email", $_email);
$stmt->bindParam(":straße", $_straße);
$stmt->bindParam(":hausnummer", $_hausnummer);
$stmt->bindParam(":plz", $_plz);
$stmt->bindParam(":ort", $_ort);
$stmt->execute();
}
?>

Siehe Kibomans Hinweis. Datenbankfelder und Variablennamen sollten keine deutschen Buchstaben wie ß enthalten. Aber ob es das ist, will ich nicht garantieren.
Einen weiteren Fehler bezüglich der Parameterzahl erkenne ich nicht.

Das war der Fehler, ohne das "ß" hat es geklappt. Vielen vielen Dank, für die Hilfe. Ich wüsche noch einen schönen und angenehmen Abend.


Wo willst du denn :Datum unterbringen?
Und wo soll $_Esel definiert werden?
Auch Sonderzeichen und umlaute sind nie gut im Code kann immer Mal wieder rzu komischen Fehlern führen
Ich sehe es erst jetzt. So doof von mir. Danke! Anstatt Datum und $_Esel musste :ort und $_ort hin.