I wonder why the following code returns an error and does not enter the data into the table. The POST values are filled, I tested that with echo.
<?php session_start();
require("mysql.php");
$userid = $_SESSION["userid"];
$stmt = $mysql->prepare("INSERT INTO kunde ( userid ,Vorname, Nachname, Straße, Hausnummer) VALUES ( :userid, :vorname, :nachname, :straße, :hausnummer)");
$stmt->bindParam(":userid", $userid);
$stmt->bindParam(":vorname", $_POST["vorname"]);
$stmt->bindParam(":nachname", $_POST["nachname"]);
$stmt->bindParam(":straße", $_POST["straße"]);
$stmt->bindParam(":hausnummer", $_POST["hausnummer"]);
$stmt->execute();
?>
The code block below is a working solution. Nevertheless, I would like to know the issue in the first code block.
<?php session_start();
require("mysql.php");
$userid = $_SESSION["userid"];
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
$straße = $_POST["straße"];
$hausnummer = $_POST["hausnummer"];
$sql = "INSERT INTO kunde ( userid, Vorname, Nachname, Straße, Hausnummer) VALUES (?,?,?,?,?)";
$stmt= $mysql->prepare($sql);
$stmt->execute([$userid, $vorname, $nachname,$straße ,$hausnummer]);
?>