[Funktion] "insertSQL" Fehler

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

  • [Funktion] "insertSQL" Fehler

    Hey,
    ich habe ien script gebastelt, welches daten einfach in eine Tabelle speichern soll. Nun kommt aber folgender Fehler bei raus:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read) VALUES ('Rate', 'KerS', 'Neue Bewertung zu einem Bild', 'Du hast eine neue' at line 1
    Da stimmt irgendwas mit dem Wert bei "read" nicht....hier ist einmal der PHP-Code:

    PHP-Code:
      $titel "Neue Bewertung zu einem Bild";
      
    $nachricht "Du hast eine neue Bewertung empfangen";
      
    $read "no";

        
    $insertSQL sprintf("INSERT INTO messages (sender, emfanger, titel, nachricht, read) VALUES ('%s', '%s', '%s', '%s', '%s')",
                           
    $_POST['autor'],
                           
    $_GET['writer'],
                           
    $titel,
                           
    $nachricht,
                           
    $read);
                           
      
    mysql_select_db($database_Mog$Mog);
      
    $Result1 mysql_query($insertSQL$Mog) or die(mysql_error()); 
    Wer sieht da denn Fehler ?

  • #2
    mysql_real_escape_string()

    setze auch deine feldname in backticks `
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ja ok...danke für die schnelle Antwort^^.....aber wohin mit diesem "mysql_real_escape_string()" Teil?......wohin soll ich den setzten?

      mfg : KerS

      Kommentar


      • #4
        mysql_real_escape_string()
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Ja ok...hab das jetzt so abgeändert :

          PHP-Code:
              $insertSQL sprintf("INSERT INTO messages (sender, emfanger, titel, nachricht, read) VALUES ('%s', '%s', '%s', '%s', '%s')",
                                 
          $_POST['autor'],
                                 
          $_GET['writer'],
                                 
          mysql_real_escape_string('Neue Bewertung zu einem Bild'),
                                 
          mysql_real_escape_string('Du hast eine neue Bewertung empfangen'),
                                 
          mysql_real_escape_string('no')); 

          Kommt aber immernoch der gleiche Fehler bei raus.....was mich bei der Fehlermeldung irritiert ist das ' vor dem read....

          das muss doch woanders dran liegen

          Kommentar


          • #6
            Original geschrieben von Abraxax
            mysql_real_escape_string()

            setze auch deine feldname in backticks `
            das gilt jeweils für ALLE felder!
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Ich weiß leider nicht was "Feldnamen" sind. Kannst du mir das nich mal zeigen hierbei?

              PHP-Code:
              $insertSQL sprintf("INSERT INTO messages (sender, emfanger, titel, nachricht, read) VALUES ('%s', '%s', '%s', '%s', '%s')",
                                     
              $_POST['autor'],
                                     
              $_GET['writer'],
                                     
              mysql_real_escape_string('Neue Bewertung zu einem Bild'),
                                     
              mysql_real_escape_string('Du hast eine neue Bewertung empfangen'),
                                     
              mysql_real_escape_string('no')); 
              meinst du das man sender, empfanger usw in ' sezten soll? Wenn ja dann kommt da ein wieterer Fehler bei raus.

              Kommentar


              • #8
                Original geschrieben von KerS1989
                Ich weiß leider nicht was "Feldnamen" sind.
                oooohh man. bitte versuche dir erst einmal grundkenntnisse zuzulegen. bitte!
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Nicht in ' sondern in `. Das ist aber ganz schlechter Stil, reservierte Worte als Bezeichner zu verwenden! Und auch das escapen nicht vergessen!

                  Kommentar


                  • #10
                    ja ok...danke...hab alles geändert...nun trat irgendwie folgender Fehler auf

                    Unknown column 'emfanger' in 'field list'
                    Dieser Wert muss aber vorhanden sein, denn wenn ich ihn ausgebe wird er angezeigt..

                    Hier nochmals zum code:

                    PHP-Code:
                    $emfang $_GET[writer];
                    echo 
                    $emfang;

                        
                    $insertSQL sprintf("INSERT INTO messages (sender, `emfanger`, `titel`, `nachricht`, `read`) VALUES ('%s', '%s', '%s', '%s', '%s')",
                                           
                    $_POST['autor'],
                                           
                    mysql_real_escape_string($emfang),
                                           
                    mysql_real_escape_string('Neue Bewertung zu einem Bild'),
                                           
                    mysql_real_escape_string('Du hast eine neue Bewertung empfangen'),
                                           
                    mysql_real_escape_string('no'));
                                           
                      
                    mysql_select_db($database_Mog$Mog);
                      
                    $Result1 mysql_query($insertSQL$Mog) or die(mysql_error()); 
                    Ich weiß das der Fehler beim $emfang liegt in dem zusammenhang :mysql_real_escape_string($emfang),

                    nun habe ich das aber schon in alle richtungen geändert und es geht trotzdem nicht...

                    Kommentar


                    • #11
                      PHP-Code:
                      $emfang $_GET['writer']; 
                      ?

                      gruß
                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #12
                        [list=1][*]Du hast den Author immer noch nicht escaped.[*]Der Fehler der auftaucht bezieht sich nicht auf den Wert sondern auf die Spalte (Feldnamen). Die Spalte exisitiert in deiner Datenbank nicht - du hast nicht zufällig empfaenger geschrieben oder so ...?[*]field_list bezeichnet folgendes: (sender, `emfanger`, `titel`, `nachricht`, `read`)[/list=1]
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Kommentar

                        Lädt...
                        X