webForumDet fria alternativet

Är mysql_insert_id() säkert?

4 svar · 562 visningar · startad av NoiseMaker

NoiseMakerMedlem sedan sep. 2001171 inlägg
#1

Tja!

Har någon gång läst att det finns två sätt att hämta upp nyckelfältet på den post man just skapat. En skulle tydligen vara säkrare än den andra eftersom en baserades på användarsessionen och en hämtade bara det högsta värdet i tabellen..

stämmer detta och är i så fall mysql_insert_id() det säkra sättet?

Tack på förhand!

MungoMedlem sedan jan. 2000372 inlägg
#2

Svårt att svara på eftersom du inte anger vilken den "andra" metoden skulle vara.

mysql_insert_id() hämtar det senaste id-numret som genererats av en INSERT-sats till angiven LINK. Dvs, om du har öppnat anslutningen till din mysql-db såhär:

$link = mysql_connect(host, username, password);

...så kan du hämta senast ID-värdet med mysql_insert_id($link).

Om du inte anger link så antas det att du menar den senaste kopplingen till mysql, vilket är det jag använder.

Alltså:

mysql_insert_id() verkar ruggigt "säkert" och jag har iaf hittills inte stött på några problem med den funktionen.

NoiseMakerMedlem sedan sep. 2001171 inlägg
#3

ungefär det svaret jag ville ha =)
Tack

DufferMedlem sedan mars 2003429 inlägg
#4

Ååh vad jag tycker det är kul att posta i gammla trådar =D

Tänkte bara tilläga ett varningens ord här har man mycket trafik på sidan med många poster som skapas hela tiden är det ju att rekommendera att alltid använda mysql_insert_id() med "$link". Eftersom det var trotsallt säkerheten vi pratade om.

Men men till webmaster: så går det när vi tvingas söka istället för att posta nytt ;-)

K@llenMedlem sedan mars 20032 667 inlägg
#5

Mungo skrev:

Svårt att svara på eftersom du inte anger vilken den "andra" metoden skulle vara.

Den andra metoden torde vara:

last_insert_id() i en sql-fråga.

126 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)