Ankündigung

Einklappen
Keine Ankündigung bisher.

Doppelter Eintrag

Einklappen

Neue Werbung 2019

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

  • Doppelter Eintrag

    Hallo, ich nutze folgenden SQL-Code, um in meine Tabelle einen Eintrag zu schreiben:
    PHP-Code:
    $sql "INSERT INTO `items` (`itemID` ,`itemname` ,`user` ,`used`)VALUES (NULL , 'Trank', 'mewking', '0');"
    Jedoch kommt es dann zu einem doppelten Eintrag. mysql_error() gibt dazu nichts aus und auch mysql_affected_rows gibt 1 zurück.
    Wo liegt da das Problem =?


  • #2
    Ich könnte wetten, du hast irgendwo ungewollt eine Schleife.
    Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

    Kommentar


    • #3
      Nein, im Script ist keine Schleife.
      nopaste.info - free nopaste script and service
      /E: mit break versucht:
      Code:
      Fatal error:  Cannot break/continue 1 level in C:\xampp\htdocs\mewland.de\root\index.php  on line 434

      Kommentar


      • #4
        Wird $sql nochmals ausgeführt, ohne es vorher neu belegt zu haben?
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          nein, das hat nix gebracht ein $sql = '' zu definieren

          Kommentar


          • #6
            Dann wird vermutlich dein Script unbeabsichtigt zwei mal aufgerufen.


            Btw.:
            PHP-Code:
            $thing addslashes(htmlspecialchars($_GET['thing'])); 
            Das sieht so aus, als hätte da jemand wenig Ahnung, was er tut ...

            Kommentar


            • #7
              @chrisb:
              im header:
              PHP-Code:
              ini_set('magic_quotes_gpc'0); 
              dann bringt addslashes was

              Kommentar


              • #8
                Nein.
                --

                „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
                  Zitat von mewking Beitrag anzeigen
                  @chrisb:
                  im header: ini_set('magic_quotes_gpc', 0); dann bringt addslashes was
                  Mit dieser Aussage bestätigst du meine Vermutung, dass wenig Ahnung vorhanden ist.

                  Kommentar


                  • #10
                    Zitat von mewking Beitrag anzeigen
                    Hallo, ich nutze folgenden SQL-Code, um in meine Tabelle einen Eintrag zu schreiben:
                    PHP-Code:
                    $sql "INSERT INTO `items` (`itemID` ,`itemname` ,`user` ,`used`)VALUES (NULL , 'Trank', 'mewking', '0');"
                    Jedoch kommt es dann zu einem doppelten Eintrag. mysql_error() gibt dazu nichts aus und auch mysql_affected_rows gibt 1 zurück.
                    Wo liegt da das Problem =?
                    Pack einfach eine ID dazu, die den Primary Index und Autoincrement erhält und schon ist die Sache erledigt. Sollte man sowieso nutzen!

                    Kommentar


                    • #11
                      Schlechte Lösung, weil Symptombekämpfung.

                      mit break versucht:
                      Eine Schleife kann bspw. auch durch ein mehrfaches Include eines Scripts eintstehen. Das solltest Du prüfen, bspw. nach der Query mal eine Testausgabe machen.
                      --

                      „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


                      • #12
                        Aso, dachte, dass der Eintrag auch doppelt rein soll.

                        Dann entweder den Fehler in der Schleife suchen oder ganz einfach vorher eine Select-Abfrage mit LIMIT 0,1 zum Testen. Falls es den Datensatz schon gibt, einfach weitermachen, wenn nicht anlegen ...

                        Kommentar


                        • #13
                          Zitat von soundbear Beitrag anzeigen
                          ganz einfach vorher eine Select-Abfrage mit LIMIT 0,1 zum Testen. Falls es den Datensatz schon gibt, einfach weitermachen, wenn nicht anlegen ...
                          Das ist immer noch Symptombekämpfung.

                          Kommentar


                          • #14
                            Wenn die Symptombekämpfung weniger CPU beansprucht und/oder übersichtlicher umzusetzen ist, sollte man diese vorziehen.

                            Aber wie auch immer: Er wollte Lösungen und keine Grundsatzdiskussion.

                            Kommentar


                            • #15
                              wie schon gesagt:
                              keine schleife!
                              ich habe jetzt herausgefunden was das problem war, jedoch nicht warum.
                              die seite ruft sich beim laden zweimal auf, aber ich finde dafür keine ursache außerhalb
                              des if-bereichs, da es ja bei allen ifs der fall ist.

                              Kommentar

                              Lädt...
                              X