UPDATE Query Fehler

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

  • 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...
    Zuletzt geändert von kerbstone; 27.03.2010, 16: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.

    Kommentar


    • #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.

      Kommentar


      • #4
        Ich komme nicht drauf...
        Zuletzt geändert von kerbstone; 27.03.2010, 16:37.

        Kommentar


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


          die('Ende für heute');

          Kommentar


          • #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...

            Kommentar


            • #7
              Zitat von kerbstone Beitrag anzeigen
              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?

              Kommentar


              • #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(); 

                Kommentar


                • #9
                  Zitat von kerbstone Beitrag anzeigen
                  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(); 
                  Zitat von h3ll Beitrag anzeigen
                  Vermutlich ist der Fehler oberhalb der Zeile 112.
                  .

                  Kommentar


                  • #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;
                        } 

                    Kommentar


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

                      Kommentar


                      • #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.

                        Kommentar


                        • #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(); 

                          Kommentar


                          • #14
                            Zitat von kerbstone Beitrag anzeigen
                            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:

                            Zitat von wahsaga Beitrag anzeigen
                            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.

                            Kommentar


                            • #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*

                              Kommentar

                              Lädt...
                              X