Natascha: letzte ID des Datensatzes der neu geschrieben wurde

Ich schreibe einen neuen Datensatz in die Datenbank, dort wird die ID automatisch um ein erhöht. Wie bekomme ich heraus wie diese ID war, ohne das ich umständlich

$sql = "select ID from TABELLE  ORDER BY ID DESC"

Letzte ID ist dann..... $ausgabe[id];

Natascha

  1. Ich schreibe einen neuen Datensatz in die Datenbank, dort wird die ID automatisch um ein erhöht. Wie bekomme ich heraus wie diese ID war

    http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

    , ohne das ich umständlich

    ... und u.U. unzuverlässig ...

    $sql = "select ID from TABELLE  ORDER BY ID DESC"

    Letzte ID ist dann..... $ausgabe[id];

  2. Hi!

    Ich schreibe einen neuen Datensatz in die Datenbank, dort wird die ID automatisch um ein erhöht. Wie bekomme ich heraus wie diese ID war

    Möglicherweise bietet das von dir verwendete DBMS eine Funktion zum Auslesen der zuletzt eingefügten ID, die vielleicht was mit lastinsertid oder so heißt.

    ohne das ich umständlich
    $sql = "select ID from TABELLE  ORDER BY ID DESC"

    Das ist sogar fehlerhaft, weil es nicht die eben eingefügte sondern alle IDs absteigend ausgibt, also auch solche, die aufgrund von parallel laufenden Prozessen eingefügt wurden.

    Lo!

  3. Hi,

    Ich schreibe einen neuen Datensatz in die Datenbank, dort wird die ID automatisch um ein erhöht. Wie bekomme ich heraus wie diese ID war

    hängt glaube ich vom DB System ab.
    Bei MS SQL Server funktioniert folgendes:

    SELECT @@IDENTITY  
    FROM tabelle
    

    Wobei ich vor kurzem von einem unserer Administratoren darauf hingewiesen wurde dass das nicht immer funktioniert.

    Also eventuell eine Transaktion starten, dann den Insert abschicken und dann mit o.g. Select arbeiten.

    ~dave

  4. Hallo,

    Ich schreibe einen neuen Datensatz in die Datenbank, dort wird die ID automatisch um ein erhöht. Wie bekomme ich heraus wie diese ID war, ohne das ich umständlich

    wenn du deine Verbindung mit dem PDO-Objekt erzeugst, ist es sehr simpel:

    $sql     = "select ID from tabelle";
    $db->query($sql);
    echo $db->lastinsertId();

    Gruß

    Sipatshi