Nächsten Autoindex ermitteln

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

  • #16
    Original geschrieben von TobiaZ
    Wenn du ganz sicher gehen willst, dann sperr die DB, aber wie schon mehrfach gesagt, dass das in den nächsten 10 Jahren (und dazu noch in einem online-shop) nochmal vorkommt, ist bei korrekter programmierung eigentlich nicht vorstellbar.
    Sicherlich ist es unwahrscheinlich und auch ich gehe davon aus, dass o.g. Problem so schnell nicht wieder auftritt. Aber mich persönlich stört es, dass hier Behauptungen in den Raum gestellt werden, ohne eine entsprechende Begründung. Ich persönlich bin auf eine solche Erklärung mehr als gespannt.
    [COLOR=red]Gesellschaftsforum.net[/COLOR] - Projekt zur Wiederbelebung der Diskussionskultur im Internet
    [COLOR=orange]1st News[/COLOR] - Das Newsletterscript für den professionellen Einsatz

    Kommentar


    • #17
      ich weiß ja nicht, was du gemacht hast, aber laut handbuch (sowohl php.net als auch mysql.com) und den erfahrungen wohl aller hier, geht es so:
      PHP-Code:
      mysql_query('INSERT ...');
      if (
      mysql_affected_rows()>0)
        echo 
      'ID: '.mysql_insert_id();
      else
        echo 
      'ID: gibbet nit'
      warum kannst du das nicht nehmen?
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #18
        Schon recht. Wenn du es nach der zweiten Methode anstatt nach der insertid machst, dann erhälts du natürlich im fehlerfall einen 1062er. aber der ablauf wird vermutlich länger dauern und die fehleranfälligkeit steigt somit.

        Kommentar


        • #19
          Diese Varianten erfüllen letztendlich denselben Zweck, letztere bietet aber auch keinen guten Schutz vor zuletzt genannten "Zufall". Grundsätzlich greife ich letztendlich dann lieber auf ein entsprechendes MySQL-Äquivalent zurück. Andernfalls hätte das Änderungen an meiner Mailklasse zu Folge. Aber da liegt auch nicht mein Problem.

          Mich persönlich regt es jedoch ein wenig auf, dass hier Lösungsvarianten genannt werden, die angeblich als besser gelten, jedoch ohne eine entsprechende Begründung, warum diese besser sind.

          Schon recht. Wenn du es nach der zweiten Methode anstatt nach der insertid machst, dann erhälts du natürlich im fehlerfall einen 1062er. aber der ablauf wird vermutlich länger dauern und die fehleranfälligkeit steigt somit.
          Im Endeffekt erzeuge ich einen Query unterm Strich mehr, habe aber dann einen besseren Schutz vor o.g. genanntem Ereignis. Aber danke für die erste Erklärung.
          Zuletzt geändert von Crake; 10.11.2003, 19:59.
          [COLOR=red]Gesellschaftsforum.net[/COLOR] - Projekt zur Wiederbelebung der Diskussionskultur im Internet
          [COLOR=orange]1st News[/COLOR] - Das Newsletterscript für den professionellen Einsatz

          Kommentar


          • #20
            Glaube ich habs jetzt erst richtig überdacht. Gibt mysql_insert_id überhaupt nen fremden datensatz zurück?

            Kommentar


            • #21
              mich regt auch so vieles auf...

              unter anderem leute, die sagen "so und so geht's nicht, weil mir is da zufällig was passiert" aber keinen furz mehr an info rausrücken wie z.b. code

              sag du mir doch, warum du dich für schlauer als der rest der welt hältst und auch für schlauer als die leute die mysql und php entwickelt haben

              ich sage, wenn du erst ein INSERT machst, kriegst du direkt danach mit mysql_insert_id die ID des eben von diesem skript angelegten datensatzes zurück und ich stütze mein behauptung auf den mysql- und php-handbüchern die's online gibt
              jetzt ist es an dir nachzuweisen, dass das nicht stimmt. das wäre dann ein bug, den du bitte an das jeweilige entwicklerteam melden möchtest

              EDIT:
              was für nen frmeden datensatz?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #22
                Mich persönlich regt es jedoch ein wenig auf, dass hier Lösungsvarianten genannt werden, die angeblich als besser gelten, jedoch ohne eine entsprechende Begründung, warum diese besser sind.
                musst du so sehen? es gibt hier so viele user, die einfach nur den code wollen, da sind wir gar nicht mehr gewohnt, dass jemand tatsächlich an dem was dahinter steckt interessiert ist...

                ich würde es so sehen, dass man erstmal sagt, was sache ist und wenn der fragesteller dann noch nicht ganz überzeugt ist, bzw. nicht gleich die vorteile oder denn sinn sieht (was auch immer) kann man immernoch argumentieren.

                OffTopic:
                BTW: ich laber seit ca. 2 Stunden nur müll...

                Kommentar


                • #23
                  Original geschrieben von mrhappiness
                  mich regt auch so vieles auf...
                  Dann bin ich hier ja nicht allein...

                  unter anderem leute, die sagen "so und so geht's nicht, weil mir is da zufällig was passiert" aber keinen furz mehr an info rausrücken wie z.b. code
                  Ich habe nie bezweifelt, dass es auf die andere Weise nicht funktioniert, lediglich, dass ich meine Methode bevorzuge und das ist subjektiv. Ich persönlich bin zum Beispiel beruflich im Segment Programmierung/Webdesign tätig und bin ständig bestrebt mich weiterzubilden.

                  Ich hatte keinen Code veröffentlicht, da ich lediglich gefragt hatte, wie ich denn nun den nächsten AutoIndex ermitteln könnte.

                  sag du mir doch, warum du dich für schlauer als der rest der welt hältst und auch für schlauer als die leute die mysql und php entwickelt haben
                  Ich halte mich nicht für schlauer und es steht mir auch nicht zu soetwas zu behaupten. Ich gehöre auch nicht zu den Leuten, die sich kompletten Code fertigstellen lassen, wenn ich etwas nicht weiss, dann frage ich eigentlich immer nur nach der entsprechenden Funktion, kann schliesslich nicht alles auwendig wissen und auch nicht alles finden. Den Rest realisiere ich dann auch auf meine Art und Weise.

                  ich sage, wenn du erst ein INSERT machst, kriegst du direkt danach mit mysql_insert_id die ID des eben von diesem skript angelegten datensatzes zurück und ich stütze mein behauptung auf den mysql- und php-handbüchern die's online gibt
                  jetzt ist es an dir nachzuweisen, dass das nicht stimmt. das wäre dann ein bug, den du bitte an das jeweilige entwicklerteam melden möchtest
                  Ich habe nie behauptet, es stimme nicht, lediglich, dass mir diese Methode missfällt.

                  mfg
                  Stephan Altmann
                  [COLOR=red]Gesellschaftsforum.net[/COLOR] - Projekt zur Wiederbelebung der Diskussionskultur im Internet
                  [COLOR=orange]1st News[/COLOR] - Das Newsletterscript für den professionellen Einsatz

                  Kommentar


                  • #24
                    Hab nicht alles gelesen ausser aber:
                    Es is doch ganz einfach die Fehleranfälligkeit wenn Du Dir nicht von der DB den last_insert_id mit ressource id holst ist höher, da Du ansonsten nur einen wert ausliest, der wie in deinem seltenen fall beschrieben ein anderer sein kann und gar nbicht der nächste autowert sein muss.

                    Im Übrigen halte ich das manipulieren von autowerten generell für völlig verfehlt, denn Du läufst auch große Gefahr Referenzen zu verletzen bzw. zu ändern die bei unsauber programmierten systemen und löschen von increment werten auftreten können.
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar

                    Lädt...
                    X