MYSQL Verzweiflung!

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

  • MYSQL Verzweiflung!

    Hi!

    Hab ein Problem.... Die Codezeilen die gleich folgen werden hatte ich auch schon als ein einziges Query, das hat aber nicht funktioniert aus irgendeinem Grunde. jetzt funktionieren alles Querys einzeln bis auf den vorletzten, dieser gibt immer einen Error zurück in dem etwa sinngemäß steht:

    You have an error in your mysql Syntax[..] near '13, 14)' Die Stelle die er hier ankreidet sind die letzten 2 Variablen die ich dem INSERT INTO Query übergebe. Die anderen Querys führt er vorher einwandfrei aus nur den EIntrag schreibt er dann nicht.

    -Kann es was mit diesen "LOCK TABLES" zu tun haben?

    Naja hier erstmal der Codeschnipsel:

    PHP-Code:
    <?
    session_start();

    $sql="LOCK TABLES berater WRITE;"

    mysql_query($sql);

    mysql_error();

    $sql2="UPDATE berater SET lft = lft +2 WHERE upline=$_SESSION[upline] AND lft >$_SESSION[ACT_RGH];";

    mysql_query($sql2);

    mysql_error();

    $sql3="UPDATE berater SET rgh = rgh +2 WHERE upline=$_SESSION[upline] AND rgh >=$_SESSION[ACT_RGH];";

    mysql_query($sql3);

    mysql_error();

    $sql4="INSERT INTO berater (uid, pwd, [...ne menge anderer variablen...], lft,
    rgh) VALUES('$_SESSION[form][uid]', $spwd, [...ne menge anderer variablen...], 
    $_SESSION[ACT_RGH], ".($_SESSION[ACT_RGH]+1).");";

    mysql_query($sql4);

    mysql_error();      HIER DIE FEHLERMELDUNG

    $sql5="UNLOCK TABLES berater;";
    ?>
    -Die Variablen die ich ausgelassen habe sind alle aufgebaut wie $_SESSION[form][uid].

    Hat irgendjemand ne Idee woran das noch liegen könnte?? Ich habe schon die Query einfach so in mysql ausgeführt mit festen werten dann geht es.. ist irgendeine Schreibweise Schrott??

    Naja wär schön wenn ihr mir helfen könntet!!

    Danke schonmal!!
    Zuletzt geändert von Koss0r; 11.08.2005, 07:58.

  • #2
    http://www.php-resource.de/forum/sho...threadid=50454

    Bitte mysql_error wie dort beschrieben einbauen und den Teil mit den horizontalen Scrollbalken beachten

    Danke
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      weil Strings in ' ' gesetzt werden
      und brich mal den Code so um, das man nicht scrollen muss
      Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

      Kommentar


      • #4
        @mrhappiness: umgebrochen hab ich den code jetzt aber was meinst du mit mysql_error() einbauen wie dort beschrieben?

        @Arni: Die beiden letzten Variablen sind keine Strings sondern Ints also sollte man die doch auch eigentlich nicht in anführungszeichen setzen oder?

        Kommentar


        • #5
          Original geschrieben von Koss0r
          @mrhappiness: umgebrochen hab ich den code jetzt aber was meinst du mit mysql_error() einbauen wie dort beschrieben?
          Original geschrieben von TobiaZ
          mySQL will nicht
          Wenn Ihr eine Fehlermeldung der Art Warning: ...: supplied argument is not a valid MySQL result resource bekommt, dann stimmt eure Abfrage nicht.
          Sucht bitte den entsprechenden Aufruf von mysql_query und ändert ihn von
          PHP-Code:
          $result mysql_query('euer SQL'); 
          in
          PHP-Code:
          $result mysql_query('euer SQL'
            or die(
          mysql_error().'<hr />'.'euer SQL'.'<hr />'); 
          und postet die Meldung, die dann kommt.

          Gleiches gilt natürlich auch dann, wenn ihr Datensätze ändern, einfügen oder löschen wollt.
          Wenn nicht das passiert, was ihr erwartet habt, dann baut mysql-error() wie oben gesehen ein.
          Das?

          Wenn du 'euer SQL' durch die SQL-Anweisung ersetzt, die den Fehler verursacht, bekommst du sie ausgegeben, kannst sie posten und wir finden eine Lösung, toll oder?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Oh mann.. ich hab das wohl gelesen... aber wie du in meibem ersten Post erkennen kannst habe ich dort mysql_error() ausgeführt...

            der Fehler den die Anweisung zurück gibt steht oben im Text... und ob ich nun "or die" hinschreibe oder direkt danach mysql_error(); is völlig wurscht da kommt die selbe Fehlermeldung...

            Kommentar


            • #7
              Du schlaues Kind sollst die komplette SQL-Anweisung als Argument an mysql_error übergeben, so wie es in dem Thread beschrieben ist, damit wir die komplette SQL-Anweisung sehen, die du an mySQL schickst

              Ist das so schwer zu verstehen?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Ok ok nicht gleich aus der Haut fahren ;-)

                Also ich sags nochmal wenn ich mysql_error() direkt nach einem mysql_query ausführe wird automatisch der Fehler den mysql_query(irgendwas) zurückgegeben hat ausgegeben. Deshalb mach ich das nach jedem Query..

                Die anderen Querys geben KEINE Fehlermeldungen zurück.

                Und auch nochmal die einzige Fehlermeldung die existier habe ich bereits in meinem ersten Post geschrieben. aber ich kann sie ja extra für dich auch nochmal ganz posten:


                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 '13, 14)' at line 1

                Kommentar


                • #9
                  Und wie sieht die SQL-Anweisung aus?
                  Na?

                  nach der Fehlermeldunghabe ich dich ja nicht gefragt, die sehe ich ja schon und die SQL-Anweisung enthältst du mir vor


                  INSERT INTO berater (uid, pwd, [...ne menge anderer variablen...], lft,
                  rgh) VALUES('$_SESSION[form][uid]', $spwd, [...ne menge anderer variablen...],
                  $_SESSION[ACT_RGH], ".($_SESSION[ACT_RGH]+1).");
                  Das ist keine gültige mySQL-Anweisung und was in den ganzen Variablen steht, das weiß ich nicht.

                  Wenn du so gnädig wärst, und deswegen mysql_error wie beschrieben einbaust, wäre ich dir unendlich dankbar
                  (Schließlich sind wir nicht blöd und haben uns was dabei gedacht...)

                  Wenn du meinst, das ist nicht nötig, dann hast du's halt nicht nötig und musst sehen, wie du zurecht kommst
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Naja das Problem ist aber das ich im moment auf der Arbeit bin und das Script überhaupt nicht hier habe.

                    Aber das ist doch auch nicht sooooooooo wichtig da in allen variablen außer den letzten beiden STRINGS stehen und dort stehen eben Zahlen und daran meckert er ja offensichtlich herum...

                    Kommentar


                    • #11
                      Original geschrieben von Koss0r
                      Aber das ist doch auch nicht sooooooooo wichtig
                      Wenn du meinst, aber dann kann die Lösung deines Problems auch nicht so wichtig sein...
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Du hast vollkommen recht....

                        Einige sind trotzdem....

                        Kommentar


                        • #13
                          Angenommen, ich würde das auf mich beziehen, dann wäre ich jetzt sauer und beleidigt und das will keiner von uns

                          Also fühle dich verbal geohrfeigt und verwarnt, etwas so missverständlich zu formulieren...

                          Und nochmal für dich zum Mitschreiben und Nachdenken:
                          • Wenn du eine Fehlermeldung von mySQL bekommst, warum interessiert dich nicht, wie die Anweisung denn genau aussieht?
                          • Woher bist du so sicher, dass alles vor dem Teil, der in der Fehlermeldung steht, völlig korrekt ist?
                            Schließlich steht in der Meldung ja near '13, 14)' und das kann auch vornedran sein, oder nicht?
                          • Angenommen, in $spwd steht a'b, dann wäre das etwas, was mit Sicherheit nicht ok ist.
                            Woher weißt du, dass das nicht drinsteht?
                            Woher wissen wir's?
                            Wenn wir's nur wissen, weil du's uns sagst:
                            - Woher wissen wir, ob's stimmt?
                            - Wie hast du das nachgeprüft?



                          mrhappiness, gespannt auf Antworten und den Ton derselbigen
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Das war blos ein Zitat..

                            Und ich hab mich bestimmt nich im Ton vergriffen..

                            Du schlaues Kind sollst
                            Also ich habe nicht gesagt das der Rest der Fehlerhaften Query in Ordnung ist ich habe lediglich gesagt das die anderen Querys in Ordnung sind.

                            Das die restlichen Variablen richtig sind weiß ich
                            a) Weil ich die Fehlerhafte Query schon direkt in Mysql ausgeführt habe (was ich aber auch oben schon erwähnte) und
                            b) Weil ich dort die Werte verwendet habe die aus den GET werten des abgeschickten Formulars stammen also genau die die an die Query übergeben werden. Und dort funktionierte das einwandfrei. Die Frage ist jetzt eigentlich nur ob PHP mit der ganzen Umsetzung der Variablen, wegen irgenwelchen Schreibweisen nicht zurecht kommt...

                            Kommentar


                            • #15
                              Original geschrieben von Koss0r
                              Also ich habe nicht gesagt das der Rest der Fehlerhaften Query in Ordnung ist ich habe lediglich gesagt das die anderen Querys in Ordnung sind.
                              Und das hat welche Relevanz für das Problem?

                              Das die restlichen Variablen richtig sind weiß ich
                              a) Weil ich die Fehlerhafte Query schon direkt in Mysql ausgeführt habe (was ich aber auch oben schon erwähnte)
                              Wenn das funktioniert, ist das aber eine andere Anweisung, als die, die du über PHP absetzt (schließlich funktioniert es da nicht), meinst du nicht auch?

                              Weil ich dort die Werte verwendet habe die aus den GET werten des abgeschickten Formulars stammen also genau die die an die Query übergeben werden. Und dort funktionierte das einwandfrei.
                              Und du hast wie genau nachgeprüft, ob in der SQL-Anweisung, die du über PHP abschickst, genau das drinsteht, was du erwartest?

                              Die Frage ist jetzt eigentlich nur ob PHP mit der ganzen Umsetzung der Variablen, wegen irgenwelchen Schreibweisen nicht zurecht kommt...
                              Und wie gedenkst du das herauszufinden, ohne dir die Anweisung anzuschauen, die du mit PHP abschickst?
                              Wenn du einfach nur die Werte nimmst, die drinstehen müssten, muss das nicht zwangsläufig genau so aussehen, wie das was tatsächlich gesendet wird...


                              Eine eigentlich korrekte SQL-Anweisung, in der Variablen stehen, die dann durch konkrete Werte ersetzt werden, kann korrekt sein und durch unglückliche Werte in den Variablen, kann die Anweisung so geändert werden, dass sie nicht mehr syntaktisch korrekt ist, ist dir das nicht klar?
                              Zuletzt geändert von mrhappiness; 11.08.2005, 09:00.
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X