Pronko: id aus mysql-table

Hi @all,

ich füge mittels INSERT einen neuen Eintrag in die mysql-table ein, und möchte gleich die id (auto inc) des hinzugefügten auslesen.
Ich könnte ja den Eintrag hinzufügen, und mir die letzte ID holen, allerdings weiss ich nicht, wie es dann aussieht, wenn ich mehrere Zugriffe gleichzeitig hab?

Hoffe mir kann jemand helfen.

mfG
Pronko

  1. Hallo,

    das ist mittels PHP die mysql_insert_id()

    Die musst Du aber sofort nach dem Insert abfragen.
    Wenn vom Script mehrere Connections gehalten wrden, muss die passende mit angegeben werden, sonst wird immer die einzige benutzt.

    Da MySQL für jede Connection diese letzte ID getrennt speichert, kann Dir nichts passieren. Die letzte Insert-ID darfst Du aber nicht mit der höchsten ID der Tabelle verwechseln!

    Wenn Deine Tabellen größer werden, bzw. die IDs stark steigen, musst Du diese Funktion aber mittels der original MySQL-Funktion nachbauen, da PHP 16Bit unterschlägt!

    LG
    Chris

  2. Hi,

    Ich könnte ja den Eintrag hinzufügen, und mir die letzte ID holen, allerdings weiss ich nicht, wie es dann aussieht, wenn ich mehrere Zugriffe gleichzeitig hab?

    Du meinst mehrere getrennte User?

    Innerhalb eines Prozesses bekommst du einen eindeutigen Kanal zur DB.
    used_id = mysql_insert_id();
    bezieht sich auf den LETZTEN insert innerhalb des Prozesses (z.B. PHP)

    Nur, wenn du im selben Prozess MEHRERE Datenbanken hast, musst du die Kanäle auch verwalten:
    used_id = mysql_insert_id(&mysql);

    LG Kalle