Datenbank Update wird nicht geschrieben

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbank Update wird nicht geschrieben

    Guten Morgen Community,

    Kann mir von euch vielleicht wer helfen und sagen wieso mir das Update nicht in die Datenbank geschrieben wird? Es kommt keine Fehlermeldung, sondern nur das die Daten geändert wurden, aber nichts passiert in der DB.

    PHP Code:
     <?php
      
    if (isset($_POST['submit']) && $_POST['username'] != '' && $_POST['vorname'] != '') {
      try {
        
    $db = new MySQLi('localhost''***''***''***');
        
    $sql sprintf("UPDATE `tabelle` SET `username` = 'username', `vorname` = 'vorname', `birthday` = 'birthday', `street` = 'street') WHERE `id` = 'id'") or die ( mysql_error() );
        
    $db->query($sql); 
        echo 
    'Daten geändert!<br />';
        
    $db->close();
      } catch (
    Exception $e) {
        echo 
    'Fehler: ' htmlspecialchars($e->getMessage());
      } 
    }
    ?>
    Ich danke euch schon mal im vorraus !!!

    Gruß
    Dieter

  • #2
    Ist das der Code, den du wirklich benutzt? Möchtest du nicht ein paar POST-Daten in die Query einbauen?

    Comment


    • #3
      Achso sry, hatte den Code extra ein wenig gekürzt, ist normal größer aber wiederholt sich nur.

      Hier meine POST Zeilen

      PHP Code:
      $db->real_escape_string($_POST['username']),
             
      $db->real_escape_string($_POST['vorname']),
             
      $db->real_escape_string($_POST['birthday']),..... 

      Comment


      • #4
        Hallo,

        hast du dein Error-Reporting mal so aufgedreht wie in den Forenregeln beschrieben? Ich sehe jedenfalls eine Klammer vor WHERE die da nicht sein sollte. Davon abgesehen wird mysql_error (ohne „i“) nicht viel zu berichten haben, wenn du die Abfragen mit mysqli* machst

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Comment


        • #5
          Hi Amica,

          die Klammer war in der Tat zuviel, aber ändert nichts daran das das Update nicht in die Datenbank geschrieben wird.

          Error Reporting habe ich gemacht.

          Es ist ja so das kein Fehler erscheint, sondern die Zusage das die Daten geändert wurden. Ein Blick in die Datenbank sagt mir aber, das das nicht der Fall ist.

          Edit: Hänge noch das Textfeld an mit dem ich die Daten Bearbeite:
          PHP Code:
          <input type="text" name="username" value="%s" /> 
          Gruß
          Dieter
          Last edited by hansdieter; 02-06-2010, 12:08. Reason: Nachtrag

          Comment


          • #6
            Originally posted by hansdieter View Post
            Es ist ja so das kein Fehler erscheint, sondern die Zusage das die Daten geändert wurden.
            Die kommt ja von dir und hat in diesem Fall nichts zu sagen. Das „or die“ steht in der falschen Zeile – im Moment prüft es nur, ob der String richtig zugewiesen wird, wovon man aber ausgehen kann
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Comment


            • #7
              Mit mysql_affected_rows() bekommst du die Anzahl der zuletzt geänderen Datenträge.

              mysql_query() liefert im Fehlerfall FALSE, ansonsten TRUE.

              Hast du das überprüft?
              Last edited by h3ll; 02-06-2010, 12:20.

              Comment


              • #8
                OffTopic:
                @h3ll: Alles okay bei dir?
                Originally posted by h3ll View Post
                Datenträge.
                myslq_query()

                Last edited by AmicaNoctis; 02-06-2010, 12:30.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Comment


                • #9
                  Man wird sich ja noch vertippen dürfen

                  Comment


                  • #10
                    Guter Hinweis h3ll

                    Hab ich jetzt eingebaut und er bringt mit 4 Warnungen, je 2 mit

                    PHP Code:
                    Access denied... (using passwordNO) ... 
                    und

                    PHP Code:
                    A link to the server could not be established... 
                    Sorry aber soweit bin ich dann noch nicht fortgeschritten. Datenverbindung steht doch, die wird auch erst danach geschlossen. Die Verbindung passt auch, damit erstell ich auch Datensätze und da kommt nicht der Fehler.

                    Gruß
                    Dieter

                    Comment


                    • #11
                      aktueller Code?
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Comment


                      • #12
                        Geändert ist nur, Klammer vor WHERE entfernt und den Code von H3ll eingefügt. Kurzversion damit das hier nicht aus allen Nähten platzt :

                        PHP Code:
                        $sql sprintf("UPDATE .... WHERE `id` = 'id'",
                        $db->real_escape_string($_POST['username']),
                        ........
                        ) or die (
                        mysqli_error());
                        $result mysql_query $sql );
                        echo 
                        "Veränderte Datensätze: %d\n"mysql_affected_rows(); 

                        Comment


                        • #13
                          Originally posted by hansdieter View Post
                          Geändert ist nur, Klammer vor WHERE entfernt und den Code von H3ll eingefügt.
                          Dann nochmal als Selbstzitat:
                          Originally posted by AmicaNoctis View Post
                          Das „or die“ steht in der falschen Zeile
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Comment


                          • #14
                            Originally posted by AmicaNoctis View Post
                            Das „or die“ steht in der falschen Zeile
                            Hab ich glatt überlesen, bestimmt weil ich mit h3ll's Schreibfehlern zu kämpfen hatte

                            In welcher Zeile meinst du denn ist 'or die' richtig?

                            Dachte das gehört da hin, weil sollte es nen Fehler beim schreiben mit sprintf geben er mir ne Ausgabe bringt.

                            Comment


                            • #15
                              Originally posted by hansdieter View Post
                              In welcher Zeile meinst du denn ist 'or die' richtig?
                              Da wo die Abfrage ausgeführt wird:
                              PHP Code:
                              $db->query($sql) or die(...); 
                              Außerdem darfst du nicht immer mysql und mysqli mischen. Bleib bei mysqli und prüf nochmal nach, dass du nirgends mehr mysql-Funktionen verwendest.
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Comment

                              Working...
                              X