kein Einfügen in Datenbank

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • kein Einfügen in Datenbank

    Hi, ich bekomme es nicht hin, dass die Einträge vom Formular in die Datenbank geschrieben werden.
    Abfagen der Datenbank funktioniert einwandfrei, aber ich bekomme das Einfügen nicht hin.
    Hier mein Script:


    PHP-Code:
    <?php

    echo '
      <form method="post" action="">
      <input type="text" placeholder="Kennzeichen" name="kz" id="kz">
      <input type="text" placeholder="Stadt" name="stadt" id="stadt">
      <input type="text" placeholder="Bundesland" name="bundesland" id="bundesland">
      <input type="submit" name="submit" id="submit" value="Suchen">
      <p></p>
    </form>
    '
    ;

    require 
    'db.php';

    $kz $_GET['kz'];
    $stadt $_GET['stadt'];
    $bundesland $_GET['bundesland'];

    // speichern
    require 'db.php';
    $einfuegen "INSERT INTO kfz
        (kz, stadt, bundesland)
        VALUES ('
    $kz', '$stadt', '$bundesland'";
    // $einfuegen->bind_param('sss', $kz, $stadt, $bundesland);

    $eintrag mysqli_query($db$einfuegen);

    echo 
    "<p>Daten werden gespeichert</p>";

    // echo'<script language="javascript" type="text/javascript">window.location.replace("index.php")</script>';

    ?>

  • #2
    GET eignet sich nicht zum Speichern von Daten. Dafür sollte POST verwendet werden.

    Außerdem sollte das Error-Reporting aktiviert und Debug-Ausgaben mit var_dump() gemacht werden um Fehlerquellen zu finden.

    Kommentar


    • #3
      habe es auf POST geändert, es geht trotzdem nicht




      PHP-Code:
      <?php

      echo '
        <form method="post" action="">
        <input type="text" placeholder="Kennzeichen" name="kz" id="kz">
        <input type="text" placeholder="Stadt" name="stadt" id="stadt">
        <input type="text" placeholder="Bundesland" name="bundesland" id="bundesland">
        <input type="submit" name="submit" id="submit" value="Suchen">
        <p></p>
      </form>
      '
      ;

      $kz $_POST['kz'];
      $stadt $_POST['stadt'];
      $bundesland $_POST['bundesland'];

      // speichern
      require 'db.php';
      $einfuegen $db->prepare("INSERT INTO kfz
          (kz, stadt, bundesland)
          VALUES ('
      $kz', '$stadt', '$bundesland'");
      $einfuegen->bind_param('sss'$kz$stadt$bundesland);
      $einfuegen->execute();

      echo 
      "<p>Daten werden gespeichert</p>";

      // echo'<script language="javascript" type="text/javascript">window.location.replace("index.php")</script>';

      ?>

      Kommentar


      • #4
        Naja, schon geschaut welchen Rückgabewert $einfuegen->execute() hat? Schon das Error-Reporting mit error_reporting(-1) und mysqli_report(MYSQLI_REPORT_ERROR) aufgedreht?

        Kommentar


        • #5
          wie kann ich das prüfen diesen Rückgabewert und wie / wo stelle ich diese Fehleranzeige ein?

          Kommentar


          • #6
            Zitat von BH8 Beitrag anzeigen
            es geht trotzdem nicht
            Das ist keine vernünftige Problembeschreibung. Außerdem solltest du froh sein, dass nichts in die Datenbank eingetragen wird, denn du würdest bei jedem Aufruf des Scriptes einen leeren Eintrag erzeugen. Du solltest überprüfen, ob im Post-Array überhaupt etwas steht.

            Kommentar


            • #7
              Zitat von h3ll Beitrag anzeigen
              Naja, schon geschaut welchen Rückgabewert $einfuegen->execute() hat? Schon das Error-Reporting mit error_reporting(-1) und mysqli_report(MYSQLI_REPORT_ERROR) aufgedreht?

              hab das in der php.ini eingeschaltet:


              es kommt Meldung :
              [COLOR=#000000][FONT=-webkit-standard]Warning: Undefined array key "kz" in /mnt/web520/d2/67/510299167/htdocs/kfz/save.php on line 11 Warning: Undefined array key "stadt" in /mnt/web520/d2/67/510299167/htdocs/kfz/save.php on line 12 Warning: Undefined array key "bundesland" in /mnt/web520/d2/67/510299167/htdocs/kfz/save.php on line 13 --[/FONT][/COLOR]
              [COLOR=#000000][FONT=-webkit-standard]
              [/FONT][/COLOR]
              [COLOR=#000000][FONT=-webkit-standard]versteh nicht wieso das eingetragene im Formular nicht in die Variablen $kz.. usw.geht?
              [/FONT][/COLOR]

              Kommentar


              • #8
                Wie sieht den der HTTP Request-Body vom Browser aus?

                Ist der HTML-Code valide? Überprüf das mal mit dem W3C-Validator.

                Kommentar


                • #9
                  Zitat von BH8 Beitrag anzeigen
                  [COLOR=#000000][FONT=-webkit-standard]versteh nicht wieso das eingetragene im Formular nicht in die Variablen $kz.. usw.geht?
                  [/FONT][/COLOR]
                  Ich wiederhole mich ja gerne:
                  Du solltest überprüfen, ob im Post-Array überhaupt etwas steht.

                  Stichwort: Affenformular. Siehe z.B. https://wiki.selfhtml.org/wiki/PHP/T...it_Validierung

                  Kommentar


                  • #10
                    Zitat von scatello Beitrag anzeigen
                    Ich wiederhole mich ja gerne:

                    Stichwort: Affenformular. Siehe z.B. https://wiki.selfhtml.org/wiki/PHP/T...it_Validierung

                    habe es überprüft, HTML ist valide.


                    Hab es nun auch probiert, mir die Variablen auszugeben, da stehen die Werte vom Formulat drin


                    Es kommt nun folgender Fehler:


                    [COLOR=#000000][FONT=-webkit-standard]Fatal error: Uncaught Error: Call to a member function bind_param() on bool in /mnt/web520/d2/67/510299167/htdocs/kfz/save.php:33 Stack trace: #0 {main} thrown in /mnt/web520/d2/67/510299167/htdocs/kfz/save.php on line 33[/FONT][/COLOR]
                    [COLOR=#000000][FONT=-webkit-standard]
                    [/FONT][/COLOR]
                    [COLOR=#000000][FONT=-webkit-standard]hier nochmal das Script:[/FONT][/COLOR]
                    [COLOR=#000000][FONT=-webkit-standard]
                    [/FONT][/COLOR]
                    [COLOR=#000000][FONT=-webkit-standard]
                    PHP-Code:
                    <!DOCTYPE html>
                    <html lang="de">
                    <head>
                      <meta charset="UTF-8">
                      <meta http-equiv="X-UA-Compatible" content="IE=edge">
                      <meta name="viewport" content="width=device-width, initial-scale=1.0">
                      <title>KFZ Kennzeichen auswerten</title>
                    </head>
                    <body>
                    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                      <input type="text" name="kz" id="kz">
                      <input type="text" name="stadt" id="stadt">
                      <input type="text" name="bundesland" id="bundesland">
                      <input type="submit" name="submit" id="submit" value="Suchen">
                      <p></p>
                    </form>

                    <?php

                    if (isset($_POST['submit']) && $_POST['kz'] <> '') {
                    $kz $_POST['kz'];
                    $stadt $_POST['stadt'];
                    $bundesland $_POST['bundesland'];

                    // echo $kz . '-' . $stadt . '-' . $bundesland;


                    // speichern
                    require 'db.php';
                    $einfuegen $db->prepare("INSERT INTO kfz
                        (kz, stadt, bundesland)
                        VALUES (?, ?, ?"
                    );
                    $einfuegen->bind_param('sss'$kz$stadt$bundesland);
                    if (
                    $einfuegen->execute()) {
                      
                    header('Location: index.php');
                      die();
                    }

                    echo 
                    "<p>Daten werden gespeichert</p>";

                    // echo'<script language="javascript" type="text/javascript">window.location.replace("index.php")</script>';


                    }
                    ?>

                    </body>
                    </html>
                    [/FONT][/COLOR]

                    Kommentar


                    • #11
                      habe es jetzt mittels mysqli_query gemacht, da geht es wunderbar.


                      Verstehe nicht , warum es mit diesem bind_param() nicht funzt ?

                      Kommentar


                      • #12
                        Weil prepare() einen Fehler verursacht hat. Offenbar hast du das Error-Reporting von mysqli nicht aktiviert, sonst hättest du eine Fehlermeldung bekommen.

                        Kommentar

                        Lädt...
                        X