Formulareingaben können nicht in die Datenbank geschrieben werden

  • Hallo zusammen,

    ich bin dabei ein Formular zu schreiben und habe aktuell das Problem, dass wenn ich es öffne, dass dann das Formular lädt und wenn ich es dann ausfülle und speichern will, dann kommt folgende Fehlermeldung "Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\xampp\htdocs\Bewerbungen\index.php:129 Stack trace: #0 C:\xampp\htdocs\Bewerbungen\index.php(129): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\Bewerbungen\index.php on line 129".

    Ich habe aktuell die Datenbank sowie den Webserver lokal laufen. Dies wird noch geändert.

    In der Zeile 129 steht "$stmt->execute();"


    Mein PHP-Abschnitt sieht so aus:

    <?php

    if(isset($_POST['abschicken']))

    {

    require("inc/db_connect.php");


    $name = $_POST['name'];

    $email = $_POST['email'];

    $alter = $_POST['alter'];

    $kurzvorstellung = $_POST['kurzvorstellung'];

    $erfahrungen = $_POST['erfahrungen'];

    $stärken = $_POST['stärken'];

    $schwächen = $_POST['schwächen'];

    $onlinezeiten = $_POST['onlinezeiten'];

    $sonstiges = $_POST['sonstiges'];

    $datum = date("Y-m-d H:i:s");


    $sql = "INSERT INTO tbl_bewerbungen(Name, EMail, Alter, Kurzvorstellung, Erfahrungen, Stärken, Schwächen, Onlinezeiten, Sonstiges, Datum) VALUES (:name, :email, :alter, :kurzvorstellung, :erfahrungen, :stärken, :schwächen, :onlinezeiten, :sonstiges, :datum)";

    $stmt = $dbh->prepare($sql);

    $stmt->bindValue(':name', $name);

    $stmt->bindValue(':email', $email);

    $stmt->bindValue(':alter', $alter);

    $stmt->bindValue(':kurzvorstellung', $kurzvorstellung);

    $stmt->bindValue(':erfahrungen', $erfahrungen);

    $stmt->bindValue(':stärken', $stärken);

    $stmt->bindValue(':schwächen', $schwächen);

    $stmt->bindValue(':onlinezeiten', $onlinezeiten);

    $stmt->bindValue(':sonstiges', $sonstiges);

    $stmt->bindValue(':datum', $datum);


    $stmt->execute();


    echo "Ihre Nachricht wurde erfolgreich gespeichert!";

    }

    ?>

    Ich hoffe mir kann da einer helfen.

    LG Jonathan

    1. Keine Spaltennamen mit Umlauten nutzen!
    2. Keine Spaltennamen mit reservierten DB-Wörtern nutzen! Siehe https://dev.mysql.com/doc/refman/5.5/en/keywords.html
    3. Wieso dieses unnötige Umschreiben von den $_POST-Variablen?
    4. Wieso ein Alter speichern? Damit man das jedes Jahr updaten muss?

    Alles unter dem Strich ist eine Signatur!


    Die Deutsche Rechtschreibung ist Freeware, sprich, du darfst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen!


    Zitat von Dieter Nuhr: "Wenn man keine Ahnung hat, einfach mal Fresse halten". Wie recht er doch hat...