Was mache ich hier falsch?

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

  • Was mache ich hier falsch?

    Hallo ihr lieben,

    was mache ich hier:

    PHP-Code:
    <?php
    session_start
    ();
    $username $_GET[username];
    $like $_SESSION[username];
    require_once(
    "inc/connect.php");
    mysql_query("UPDATE members SET like = '$like' WHERE username = '$username'") or die(mysql_error());

    ?>
    falsch? Als Fehler kommt:

    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 'like = 'Akkon' WHERE username = 'wishdream'' at line 1
    Bitte helft mir ich komme einfach nicht weiter O.O

  • #2
    Schau mal auf
    MySQL :: MySQL 5.1 Referenzhandbuch :: 9.5 Ist MySQL pingelig hinsichtlich reservierter Wörter?
    und
    MySQL :: MySQL 5.1 Referenzhandbuch :: 9.2 Datenbank-, Tabellen-, Index-, Spalten- und Aliasnamen

    Dein LIKE kann so nicht funktionieren.
    Versuchs mal mit `like`

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      Dankesehr, kannst du mir auch sagen wo ich tipps finde, wo ich etwas in ein Feld hinzufügen statt ersetzen kann?
      Wie folgt:
      A und B gehen diesem Link nach
      like.php?username=C

      Dann soll statt dem Namen der zum schluss geliked hat (also in dem Fall B) allein da stehen sondern beide stehen "A, B"

      geht das??

      Kommentar


      • #4
        what?
        Emmm ich verstehe nicht ganz was du möchtest...

        php-Entwicklung | ebiz-consult.de
        PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
        die PHP Marktplatz-Software | ebiz-trader.de

        Kommentar


        • #5
          Also mein Script ermöglicht es derzeit nur, den namen der dem Link folgt zu überschreiben.
          Das heißt
          Nutzer "A" geht bei Nutzer "B" im Profil auf "I Like it!",
          Dann wird das Script ausgeführt und das "liken" Feld für den Nutzer B füllt sich mit dem Nutzernamen von "A". Wenn jetzt Nutzer "C" ebenfalls im Profil von Nutzer "B" auf liken geht, dann wird da im Profilfelt "liken" einfach nur der Nutzername von "A" überschrieben mit "C" und "C" wird nicht angefügt wie folgt:

          Likes von: "A, C"

          Verstanden? Ich wüsste nicht wie ich es besser erklären könnte

          Kommentar


          • #6
            Hallo,

            in eine Spalte gehört ein atomarer Wert. Dein Datenbankmodell ist nicht normalisiert. Likes von anderen Benutzern gehören in eine eigene Tabelle. Benutzernamen, die einen Apostroph enthalten (z. B. Clarice D'Acosta) sorgen für einen Crash in deinem Script, da du dich nicht gegen SQL Injections absicherst. Selbst unbegabte Hacker können das ausnutzen, um deine gesamte DB zu leeren.

            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]

            Kommentar


            • #7
              Like benötigt keine = im SQl !!


              einfach LIKE '%suche%' Sry Frage Falsch verstanden


              like ist ein Schlüsselwort und darf nicht als Feldbezeichnung benutzt werden !
              Zuletzt geändert von Buju77; 22.02.2012, 12:31.

              Kommentar


              • #8
                Zitat von Buju77 Beitrag anzeigen
                like ist ein Schlüsselwort und darf nicht als Feldbezeichnung benutzt werden !
                Darf es schon, nur müssen dann die Anführungszeichen für Bezeichner (`...`) verwendet werden, aber das sagte Berni ja eingangs schon.
                [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]

                Kommentar


                • #9
                  ja kann man so machen, allerdings Ticks für Keys mag ich persönlich nicht, vondaher benutze ich einfach keine Schlüsselwörter als feldbezeichner.

                  weis gar nicht ob das mit PDO überhaupt zulässig wäre ...

                  Kommentar


                  • #10
                    Zitat von Buju77 Beitrag anzeigen
                    weis gar nicht ob das mit PDO überhaupt zulässig wäre ...
                    Ist es und warum sollte es auch nicht? Nur weil du die nicht magst, überträgt sich das nicht automatisch auf PDO
                    [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]

                    Kommentar


                    • #11
                      Zitat von AmicaNoctis Beitrag anzeigen
                      Ist es und warum sollte es auch nicht? Nur weil du die nicht magst, überträgt sich das nicht automatisch auf PDO
                      ne nicht weil ich die nicht mag ...
                      eher rational ... viel mehr schreiben damit pdo die ticks auch im key setzt ...

                      Kommentar


                      • #12
                        Zitat von Buju77 Beitrag anzeigen
                        ne nicht weil ich die nicht mag ...
                        eher rational ... viel mehr schreiben damit pdo die ticks auch im key setzt ...
                        Ich versteh nicht, was du damit sagen willst und was das mit PDO zu tun haben soll.
                        [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]

                        Kommentar


                        • #13
                          na weil pdo automatisch die Ticks entfernt im SQl query also müsstest du den key genaus wie value ersetzen lassen ... ergo viel mehr schreiben, was durch eine einfache Regel wie keine Keywords als Feldbezeichner entfällt.

                          Kommentar


                          • #14
                            Zitat von Buju77 Beitrag anzeigen
                            na weil pdo automatisch die Ticks entfernt im SQl query also müsstest du den key genaus wie value ersetzen lassen ... ergo viel mehr schreiben, was durch eine einfache Regel wie keine Keywords als Feldbezeichner entfällt.
                            Seit wann entfernt PDO die Backticks in Feldbezeichnern? Wieso muss ich was ersetzen lassen und was meinst du überhaupt damit? Sprichst du von Prepared Statements? Da werden aber auch keine Keywords ersetzt und das Ersetzen der Platzhalter mit den Werten übernimmt auch nicht PDO sondern die DB selbst. Ich rätsele hier, was du wohl meinen könntest, aber bisher ergibt es für mich keinen Sinn, sorry.
                            [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]

                            Kommentar


                            • #15
                              yuup Prepared Statements.
                              die DB macht nichts, wenn dann machts die Library PDO -
                              wie auch immer - ich nehm einfach keine keywords von daher ist es mir mittlerweile Wurst, und wenns so klappt freuts mich für dich ...

                              Select * From tbl WHERE like LIKE '%Dampflauderer%'

                              Kommentar

                              Lädt...
                              X