Announcement

Collapse
No announcement yet.

Generator-ID (automatischer Primary Key) in PHP abfragen!?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Generator-ID (automatischer Primary Key) in PHP abfragen!?

    ich habe ein problem (wer hätte das gedacht ):

    wenn ich mit hilfe eines generators eine id erzeuge, sollte es doch irgendwie möglich sein, dass ich danach diesen gerade eben erzeugten primary key abfrage.

    ich muss nämlich in einer anderen tabelle auch etwas einfügen, aber dafür brauche ich als fremd key eben diesen unique key...

    danke für die hilfe

    PS: Datenbank ist eine Interbas...

  • #2
    Dann mußt Du diese ID in der Oberfläche erzeugen, einfachster Weg ist eine Stored Proc die auf den Generator zugreift, sonst hilft nur ein select, wenn Du die ID im Trigger setzt.

    Ist auch bei anderen ForntEnds als php das Problem

    Comment


    • #3
      damit fang ich ehrlich gesagt nicht viel an (bin noch in der ausbildung...)

      wie genau geht das jetzt?

      *blödvorkomm*

      danke nochma

      Comment


      • #4
        da gibt es eine php-funktion für:

        $primary_key = last_insert_id($connect);

        $connect ist der pointer auf den datenbank-connect

        Comment


        • #5
          Wie erzeugst Du denn derzeit die ID deines Hauptdatensatzes?

          Meine Annahme ist in einem Trigger in der Datenbank, richtig?

          Dann ist aber deinem php die ID nicht bekannt.

          Lösung 1) Dein Datensatz hat noch ein anderes eindeutiges feld, dann kannst Du mit select id from tabelle where feld='eindeutiger Wert' die ID wieder in die Oberfläche holen, ist aber nicht besonders schön.

          Lösung 2) Du besorgst Dir die ID in PHP und fügst Sie direkt in die beiden Sätze ein. Dazu braucht Du ein select .. from .. um an den Geenrator Wert ranzukommen. Ein Oralce Trick wäre auf eine Tabelöle zuzugreifen die immer nur einen Datensatz hat. Also in InterBase zum Beispiel select gen_id(idgen,1) from rdb$database. Oder aber eine Stored Procedure die das liefert dann select id from sp_newId mit folgender Stored Proc
          <pre>
          craete procedure sp_newid returns(id integer)
          as
          begin
          id = gen_id(idgen,1);
          suspend;
          end
          </pre>

          Ist das so verständlich

          Comment

          Working...
          X