Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySQL Querys funktionieren nicht(xampp Windows XP)

Einklappen

Neue Werbung 2019

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

  • [Erledigt] MySQL Querys funktionieren nicht(xampp Windows XP)

    Hallo liebes Forum

    Ich wollte einmal fragen, ob mir vielleicht einer von euch helfen kann.
    Nachdem ich einige Freunde gefragt habe, die wahnsinnig gut SQL können, und die mir immernoch nicht weiterhelfen konnten, frage ich einfach hier mal nach..

    Ich hab vor ein Paar Tagen auf meinem Windows XP Computer Xampp Installiert, um meine Scripte einfach auf dem PC direkt schreiben zu können usw.
    In xampp ist auch mysql installiert. Bei dem Ersten Script, es soll ein Chatscript(wie icq2go oder so bloß aus langeweile) werden, schrieb ich zum Abfragen der Freunde eine Abfrage für die MySQL:

    [PHPWIKI]$abfrage = "SELECT * FROM buddies WHERE buddie LIKE '$_SESSION[number]'";
    $ergebnis = mysql_query($abfrage) or die(mysql_error());
    while($row = mysql_fetch_object($ergebnis))[/PHPWIKI]

    $_SESSION[number] = ist die "ICQ Nummer" wenn man es so will^^

    Sie Funktioniert einwandfrei! Aber dann habe ich zum Updaten der Statusmessage noch eine UPDATE funktion geschrieben:

    [PHPWIKI]
    mysql_query("UPDATE user SET status = '$_POST[status]' WHERE number = '$_SESSION[number]'");
    [/PHPWIKI]
    $_POST[status] = ist die gepostete Statusmessage die vom User.

    Kann mir wer erklären, woran das liegt?
    Wie gesagt habe einen WinXP PC mit XAMPP!

    Danke im vorraus, SkEiTa


  • #2
    Hast mal das fertige SQL-Statement ausgegeben ?
    Signatur:
    PHP-Code:
    $s '0048656c6c6f20576f726c64';
    while(
    $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

    Kommentar


    • #3
      Erst mal, passe bitte dein Posting an: Den Beispielcode mit dem Wiki zu verlinken, ist sinnfrei. Für Codebeispiele sind die [PHP]-Tags da, nicht die [PHPWIKI]-Tags.

      Zitat von SkEiTa Beitrag anzeigen
      Kann mir wer erklären, woran das liegt?
      Die Datenbank kann - nutze mysql_error.
      Und lasse dir dynamisch generierte Queries immer zur Kontrolle ausgeben, um zu kontrollieren, ob auch wirklich das drinsteht, was du leichtfertig annimmst.

      Kommentar


      • #4
        Du solltest dir des weiteren Gedanken über SQL-Injections machen.
        Mach bitte das error_rerporting(-1) an und zeige Fehler an (display_errors= on).

        Außerdem könntest du noch das hier machen:
        PHP-Code:
        mysql_query('...') or die(mysql_error()); 
        "My software never has bugs, it just develops random features."
        "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

        Kommentar


        • #5
          Nur mal so auf Verdacht: Du verwendest bei SELECT die Tabelle buddies und bei UPDATE die Tabelle user ?!
          Kann ja sein, daß das so richtig ist, ich frag' nur mal nach, weil ich irgendwie nicht rausgelesen habe, was genau nicht funktioniert bei Dir.
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            Zitat von Arne Drews Beitrag anzeigen
            Nur mal so auf Verdacht: Du verwendest bei SELECT die Tabelle buddies und bei UPDATE die Tabelle user ?!
            Kann ja sein, daß das so richtig ist, ich frag' nur mal nach, weil ich irgendwie nicht rausgelesen habe, was genau nicht funktioniert bei Dir.
            Das eine hat doch nichts mit dem anderen zu tun.

            Buddies sind Buddies und der aktuelle Status ist eben der Status^^
            Und falls man immer nur einen Status haben "kann" und nur dieser in der Applikation anzeigt wird, passt es doch auch, dass er in der user Tabelle ist


            My 0.02$



            UND wie fast in jedem Beitrag von mir: SQL INJECTION GEFAHR!!!!!!!!!!
            Du schreibst den Status direkt aus der POST Variable in die DB ohne ihn vorher zu escapen

            Kommentar


            • #7
              Und falls man immer nur einen Status haben "kann" und nur dieser in der Applikation anzeigt wird, passt es doch auch, dass er in der user Tabelle ist
              Genau. Das lese ich aber aus seinem Post nicht raus, daher habe ich mal blöd gefragt...
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                PHP-Code:
                echo "UPDATE user SET status = '$_POST[status]' WHERE number = '$_SESSION[number]'"
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  user ist ein mysql keyword.

                  Kommentar


                  • #10
                    Zitat von Papst Beitrag anzeigen
                    user ist ein mysql keyword.
                    Was ist ein mysql keyword?
                    Falls du ein "reserviertes" Wort meinst, AFAIK: nein ist es nicht.
                    MySQL :: MySQL 5.0 Reference Manual :: 8.3 Reserved Words

                    Kommentar


                    • #11
                      Okay danke schonmal für eure Antworten, wo mich einige wenigstens schonmal twas schlauer in sachen sql gemacht haben

                      Jedoch bleibt die frage offen ob es an der SQl liegt(xampp) oder einfach nur an der syntax der abfrage...

                      hier mal der mysql_error():
                      Unknown column 'status' in 'field list'
                      bei
                      mysql_query("UPDATE user SET status = '$_POST[status]' WHERE number = '$_SESSION[number]'") or die(mysql_error());

                      bedanke mich im vorraus bei euch

                      Kommentar


                      • #12
                        unkown column 'status' => unbekannte Spalte 'status' => Die Spalte existiert wohl nicht.

                        Kommentar


                        • #13
                          Tja, da hast du doch die Antwort.
                          Es gibt keine status Spalte

                          Kommentar


                          • #14
                            Ich habe das ganze übrigens auch per echo überprüft,


                            UPDATE user SET status = 'fgjfg' WHERE number = '1'

                            Das ist aber irgendwie eine Funktionierende Update Syntax oder nicht?
                            genau das steht nämlich am ende in der mysql_query();

                            da stht dann aber im mysql_error:
                            Unknown column 'status' in 'field list'

                            Kommentar


                            • #15
                              Sag mal liest du überhaupt unsere Antworten?

                              Kommentar

                              Lädt...
                              X