Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mysql Eintrag wird nicht ausgeführt.

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Mysql Eintrag wird nicht ausgeführt.

    Hallo Leute,

    ich habe ein Formular wo Kundendaten in die Datenbank gespeichert werden sollen.
    So lange ich alle Felder des Formulars ausfülle, funktioniert das eintragen ohne Probleme. Sobald ich aber ein optionales Feld leer lasse, wird der Eintrag nicht in der Datenbank angelegt.

    Hier mein code zum Eintragen. und die Ausgabe von echo $eintrag;

    PHP-Code:
    <?php
    include("mysql.inc.php");
     
    if (isset( 
    $_POST['eintragen'] ))
    {
        
        
    $eintrag "INSERT INTO kunde (vorname, nachname, strasse, hausnummer, plz, stadt, geburtsdatum, telefon, email) 
        VALUES ('
    {$_POST['vorname']}', '{$_POST['nachname']}', '{$_POST['strasse']}', '{$_POST['hausnummer']}', '{$_POST['plz']}', '{$_POST['stadt']}', '{$_POST['geburtsdatum']}', '{$_POST['telefon']}', '{$_POST['email']}')";
        
    $eintragen mysqli_query($db$eintrag);
        if (
    $eintragen)
        {
            echo 
    "<h3>Der Datensatz wurde hinzugefügt!</h3>";
           echo
    "<a href='index.php'>zurück</a>";
        }
        else
        {
            echo 
    '<h3>Der Datensatz konnte <span class="hinweis">nicht</span> hinzugefügt werden!</h3>';
           echo
    "<a href='index.php'>zurück</a>";
        }
    }

    ?>
    INSERT INTO kunde (vorname, nachname, strasse, hausnummer, plz, stadt, geburtsdatum, telefon, email) VALUES ('', 'test', 'test Str.', '11', '12345', 'Teststadt', '1999-09-19', '01761234567', '')
    Das wird über die Variable an die Db übergeben. Was mich wundert sind die " am Anfang und am Ende, da wo normal vorname und email stehen. Die Felder habe ich beim Eintragen leer gelassen.


    Danke für die Zeit.
    Gruß

  • #2
    1. Wissenswertes zum Thema SQL-Injection
    2. Nutze besser PDO (incl. NamedParameters)

    Kommentar


    • #3
      Ahoi,

      schau dir mal an was im Post steht.
      PHP-Code:
      print_r($_POST); 
      es kann sein, wenn du die beiden leer gelassen hast und kein value attribut gesetzt hast, dass die beiden im Post gar nicht existent sind
      ------
      Grüße Manü

      Kommentar


      • #4
        PHP-Code:
        Array ( [vorname] => [nachname] => test [plz] => 44787 [strasse] => Test Str. [hausnummer] => 11 [stadt] => Teststadt[geburtsdatum] => 1999-09-19 [telefon] => 324 [email] => [eintragen] => Absenden 
        Das gibt printr aus.

        Kommentar


        • #5
          Mysql Eintrag wird nicht ausgeführt.

          Zitat von nomuri
          Was mich wundert sind die " am Anfang und am Ende
          Warum? Die Zeichen sind doch in deiner Anweisung drin, eben nur kein Inhalt.
          PHP-Code:
          VALUES ('{$_POST['vorname']}', (...) , '{$_POST['email']}'
          Zitat von nomuri
          Sobald ich aber ein optionales Feld leer lasse, wird der Eintrag nicht in der Datenbank angelegt.
          Dann bau mal mysqli_error mit ein, um zu schauen was passiert.

          Und ganz wichtig...die Hinweise von rkr beachten.
          Delirius

          PHP - Grundlagen / PDO - Tutorial / PDO - Dokumentation

          Kommentar


          • #6
            Mach mal aus
            PHP-Code:
            $eintragen mysqli_query($db$eintrag); 
            dies hier:
            PHP-Code:
            $eintragen mysqli_query($db$eintrag)
               or die(
            "MySQL-Error: " mysqli_error($db)); 
            Die Deutsche Rechtschreibung ist Freeware! 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.

            Kommentar


            • #7
              Hab jetzt in mein Formular nen value="" eingefügt damit geht es. Danke an alle für die Hilfe.

              Werde mir das mit der SQL Injection und auch PDO anschauen.

              Kommentar

              Lädt...
              X