0

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]);      
?>
  • 2
    It looks correct to me. The only thing I can think of is that it may not like the `ß` character in the placeholder. – aynber Jun 02 '20 at 11:31
  • @aynber Yes, thank you very much! I should code the variables in english in the future. – pascalabo Jun 02 '20 at 11:36

0 Answers0