UPDATE Query Fehler

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

  • UPDATE Query Fehler

    Ich sehe vor lauter Code keine Logik mehr.
    Wo ist in diesem Code-Fragment der Fehler?

    Es heißt:
    Parse error: syntax error, unexpected T_STRING in /var/www/web165/html/tpl/anzeigebearbeiten2.php on line 112

    PHP Code:
    // line 112 in anzeigebearbeiten2.php
    $update mysql_query("

    UPDATE 
    $tbl_anzeigen

    SET name = '"
    .replaceSpecialChars(mysql_real_escape_string($_POST["name"]))."',
    alter = '"
    .mysql_real_escape_string($_POST["alter"])."',
    email = '"
    .replaceSpecialChars(mysql_real_escape_string(($_POST["email"]))."',
    email_public = '"
    .$_POST["email_public"]."',
    festnetz = '"
    .mysql_real_escape_string($_POST["festnetz"])."',
    festnetz_public = '"
    .$_POST["festnetz_public"]."',
    mobil = '"
    .mysql_real_escape_string($_POST["mobil"])."',
    mobil_public = '"
    .$_POST["mobil_public"]."',
    plz = '"
    .mysql_real_escape_string($_POST["plz"])."',
    ort = '"
    .replaceSpecialChars(mysql_real_escape_string($_POST["ort"]))."',
    strasse = '"
    .replaceSpecialChars(mysql_real_escape_string($_POST["strasse"]))."',
    strasse_public = '"
    .$_POST["strasse_public"]."',
    klingelinfo = '"
    .replaceSpecialChars(mysql_real_escape_string($_POST["klingelinfo"]))."',
    klingelinfo_public = '"
    .$_POST["klingelinfo_public"]."',
    beschreibung = '"
    .replaceSpecialChars(mysql_real_escape_string($_POST["beschreibung"]))."'

    WHERE aktiv = '1'
    AND anzeigeid = '"
    .$_POST["anzeigeid"]."'
    AND passwort = '"
    .$_POST["passwort"]."'

    "
    ) or die mysql_error(); 
    Ich bin gerade echt am verzweifeln...
    Last edited by kerbstone; 27-03-2010, 15:38.

  • #2
    Es wäre hilfreich, wenn du nicht alles so gequetscht schreibst, sonern zwischen den Strinverknüpfungen Abstände machst.

    Strings müssen übrigens in Hochkomma geschrieben werden. Du schreibst sie aber ständig ohne (name, alter, usw.).

    Du solltest alle Benutzereingaben mit mysql_real_escape_string() escapen, weil sonst fremder Code in dein Datenbankquery eingeschleust werden kann, was eine der häufigsten ausgenutzten Sicherheitslücken darstellt.

    Ich kann beim Überfliegen übder den (unübersichtlichen) Code keinen Syntax-Fehler ausmachen. Vermutlich ist der Fehler oberhalb der Zeile 112.

    Comment


    • #3
      PHP Code:
      $update mysql_query("gekürzt") or die mysql_error(); 
      Dass diese auf's wesentliche gekürzte Fassung den gleichen Fehler liefert, sollte dir zu denken geben.

      die ist eine Funktion, und deren Argumente packt man ("versuch dich zu erinnern") noch mal gleich in welche Zeichen ...?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Comment


      • #4
        Ich komme nicht drauf...
        Last edited by kerbstone; 27-03-2010, 15:37.

        Comment


        • #5
          OffTopic:
          Vorschlag: Hirn runterfahren, 1(!) Feierabendbier und morgen/Montag wieder anfangen.


          die('Ende für heute');

          Comment


          • #6
            Abgesehen davon, dass es

            PHP Code:
            $update mysql_query("UPDATE $tbl SET gekürzt = 'irgendetwas' ") or die mysql_error(); 
            gekürzt heißen müsste, kann ich beim besten Willen nicht den Fehler erkennen...

            Comment


            • #7
              Originally posted by kerbstone View Post
              Abgesehen davon, dass es

              PHP Code:
              $update mysql_query("UPDATE $tbl SET gekürzt = 'irgendetwas' ") or die mysql_error(); 
              gekürzt heißen müsste, kann ich beim besten Willen nicht den Fehler erkennen...
              Hast du meinen Beitrag nicht gelesen?

              Comment


              • #8
                Strings müssen übrigens in Hochkomma geschrieben werden. Du schreibst sie aber ständig ohne (name, alter, usw.).
                Doch habe ich
                Aber trotz Hochkommata kommt der gleiche Fehler:

                PHP Code:
                // irgendwas ist nun in hochkommata
                $update mysql_query("UPDATE $tbl SET gekürzt = 'irgendetwas'") or die mysql_error(); 

                Comment


                • #9
                  Originally posted by kerbstone View Post
                  Doch habe ich
                  Aber trotz Hochkommata kommt der gleiche Fehler:

                  PHP Code:
                  // irgendwas ist nun in hochkommata
                  $update mysql_query("UPDATE $tbl SET gekürzt = 'irgendetwas'") or die mysql_error(); 
                  Originally posted by h3ll View Post
                  Vermutlich ist der Fehler oberhalb der Zeile 112.
                  .

                  Comment


                  • #10
                    Dort steht lediglich:

                    PHP Code:
                    function replaceSpecialChars($input) {
                            
                    $output ereg_replace("Ä","Ä",$input);
                            
                    $output ereg_replace("Ö","Ö",$output);
                            
                    $output ereg_replace("Ü","Ü",$output);
                            
                    $output ereg_replace("ä","ä",$output);
                            
                    $output ereg_replace("ö","ö",$output);
                            
                    $output ereg_replace("ü","ü",$output);
                            
                    $output ereg_replace("ß","ß",$output);
                            
                            return 
                    $output;
                        } 

                    Comment


                    • #11
                      Nein, da muss mehr stehen. Nämlich 112 Zeilen!

                      Comment


                      • #12
                        Ist zwar nicht die Ursache, aber ereg_replace() ist veraltet und sollte nicht mehr verwendet werden. Mal davon abgesehen ist eine Regex-Funktion hier generell die falsche Wahl. Du baust ja mehr oder weniger nur die Funktion htmlentities() nach. Aber warum eigentlich? Warum ersetzt du Umlaute durch Entities? Das macht selten Sinn.

                        Comment


                        • #13
                          Ja tut es, aber ist bedeutungslos, da beim entfernen der Zeile
                          wieder alles funktioniert.

                          PHP Code:
                          $update mysql_query("gekürzt") or die mysql_error(); 

                          Comment


                          • #14
                            Originally posted by kerbstone View Post
                            Abgesehen davon, dass es [...] gekürzt heißen müsste,
                            Versuch, klug zu sch***en ...? :-)

                            (Das, was du an mysql_query übergibst, ist nicht die Ursache des Fehlers, deshalb hab ich das so stark gekürzt, um es deutlich zu machen.)

                            kann ich beim besten Willen nicht den Fehler erkennen...
                            Noch mal:

                            Originally posted by wahsaga View Post
                            die ist eine Funktion, und deren Argumente packt man [color=red]([/color]"versuch dich zu erinnern"[color=red])[/color] noch mal gleich in welche Zeichen ...?
                            Na, jetzt vielleicht langsam ...?
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Comment


                            • #15
                              Dass die Lösung (und Antwort auf wahsagas Hinweis von gestern) schon längst hier drin steht, ist dir immer noch nicht aufgefallen?

                              Vielleicht sollten wir den Thread der Vollständigkeit halber nach PHP verschieben? Dort hättest du den Thread auch direkt eröffnen können, nachdem du ja ein PHP-Fehlermeldung bekommen hast und keine von MySQL.

                              *move*

                              Comment

                              Working...
                              X