# SQL Insert ID rückgabe



## trage (18. September 2008)

Tach,

da ich jetzt kein SQL forum gesehen habe, poste ich es hier, da ich es ja in PHP mache.

Ich habe jetzt übersichtshalber mehrere Tabellen, eine Tabelle in der die User mit Passwort gespeichert sind inkl. ID mit auto increment und eine weitere Tabelle für Einstellungen.

Jetzt würde ich ganz gerne wenn ich ein neuen User eintrage die ID die er bekommen hatt zurückgegeben haben damit ich auch die Einstellungen diesem User zuordnen kann. Ich weiß das es irgendwie geht, aber leider weiß ich nichtmehr wie, da es shcon etwas länger her ist.

gruß trage


----------



## ZodiacXP (18. September 2008)

http://www.php.net/manual/de/function.mysql-insert-id.php


----------



## trage (18. September 2008)

thx, das hört sich doch gut an.

Nur versteh ich den Parameter nicht ganz, da er nirgends benutzt wird, weder in den php.net beispiel noch in den kommentaren. 


```
$res = mysql_connect('localhost', 'root', 'root');
mysql_select_db('testdb');
mysql_query("INSERT INTO TEST (bla) values ('bla')");
echo mysql_insert_id($res);
```

Würde das ganze so funktionieren oder wie?

Weil es besteht ja ein Problem, wenn zwei Leute so gut wie gleich das Formular abschicken würden könnte es ja vorkommen das zwei User eingetragen sind, er sich die ID über mysql_insert_id() hohlt und beide den gleichen Wert erhalten, oder seh ich da was falsch?


----------



## ZodiacXP (18. September 2008)

1. "Es klappt so" und 2. "Nicht ganz". Die Befürchtungen hatte ich auch früher immer.
Allerdings hat jeder Benutzer eine eigene eindeutige Verbindung zu der Datenbank, in der auch nur die eigene zuletzt eingefügte ID gespeichert wird. Das zwei UPDATES oder INSERTS gleichzeitig passieren wird auch nicht geschehen, da mySQL die komplette Tabelle bei diesen beiden Befehlen sperrt, solange der Befehl läuft. Ist wie eine große Warteschlange vor deiner Tabelle


----------



## trage (18. September 2008)

Ok, thx. Auch gerade getestet und funktioniert wunderbar.


----------

