id bestimmen nach datenbank-eintrag
peter mueller
- php
Hallo
Wie kann ich direkt nach einem Datenbank-Eintrag die "id" bestimmen? Die Datenbank enthält die Felder "id" und "name", wobei das Feld "id" ein Primärschlüssel (auto-increment) ist.
$sql = "insert into db_name (name) values ('Müller')";
mysql_query($sql);
Gibt es hierzu vielleicht ein spezieller Befehl?
Gruss
Peter
Bitte mal die Doku genauer lesen!!!
$id = mysql_insert_id($dbconnection);
Gruss Stefan
$id = mysql_insert_id($dbconnection);
Vielen Dank!
Gruss
Peter
Hallo,
Wie kann ich direkt nach einem Datenbank-Eintrag die "id" bestimmen?
Gibt es hierzu vielleicht ein spezieller Befehl?
Du hast Glueck:
PHP: mysql_insert_id()
http://www.php.net/manual/de/function.mysql-insert-id.php
MySQL: LAST_INSERT_ID() und mysql_insert_id()
http://www.mysql.com/doc/de/Miscellaneous_functions.html
http://www.mysql.com/doc/de/mysql_insert_id.html
Gruesse,
Thomas
kurz Rückfrage.
Nehmen wir mal an, dass zwei User fast gleichzeitig das Skript mit dem Befehl insert ausführen, welchen Wert erhalte ich dann für die id?
zeitliche reihenfolge:
user 1: insert (id=22)
user 2 : insert (id=23)
user 1: mysql_insert_id
Welchen Wert erhalte ich hierfür?
Hello,
Nehmen wir mal an, dass zwei User fast gleichzeitig das Skript mit dem Befehl insert ausführen, welchen Wert erhalte ich dann für die id?
zeitliche reihenfolge:
user 1: insert (id=22)
user 2 : insert (id=23)
user 1: mysql_insert_id
Welchen Wert erhalte ich hierfür?
Du erhältst den INT-Anteil der letzten Insert-ID auf deiner Connection, also von User 1. Da dieser Anteil (22) eindeutig kleiner als MAXINT ist, wird die Antwort richtig sein.
Du solltest Dir gleich eine eigene Funktion schreiben, die das SQL-Statement "SELECT LAST_INSERT_ID();" benutzt.
Wenn eine Funktion einen Fehler oder eine bekannte erhebliche Einschränkung besitzt, wie dies bei mysql_insert_id() der Fall ist, sollte man sie gleich durch die bessere Lösung ersetztn.
Und denke immer daran, dass Du auch 0 zurückbekommen kannst. das bedeutet dann, dass gar kein Satz eingefügt wurde.
Liebe Grüße aus http://www.braunschweig.de
Tom
Wenn eine Funktion einen Fehler oder eine bekannte erhebliche Einschränkung besitzt, wie dies bei mysql_insert_id() der Fall ist, sollte man sie gleich durch die bessere Lösung ersetztn.
Besten Dank für den Tipp
Gruss
Peter