id van laatste insert in DB

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Alex

Alex

28/05/2008 20:05:00
Quote Anchor link
Eenvoudige vraag: hoe achterhaal ik de ID(autoincrement en primary inDB)
van de laatste insert?
 
PHP hulp

PHP hulp

07/01/2025 05:25:45
 
Frank -

Frank -

28/05/2008 20:07:00
Quote Anchor link
mysql_last_id()
 
Alex

Alex

28/05/2008 20:15:00
Quote Anchor link
Call to undifined function ....
 
Terence Hersbach

Terence Hersbach

28/05/2008 20:24:00
Quote Anchor link
mysql_insert_id()
 

28/05/2008 20:27:00
Quote Anchor link
Aangezien het een autoincrement is, is het altijd de hoogste waarde. Je kan dus ook gewoon de hoogste waarde opvragen ;)


SELECT MAX(id)
FROM user;
Gewijzigd op 01/01/1970 01:00:00 door
 
Frank -

Frank -

28/05/2008 20:31:00
Quote Anchor link
René D. schreef op 28.05.2008 20:27:
Aangezien het een autoincrement is, is het altijd de hoogste waarde. Je kan dus ook gewoon de hoogste waarde opvragen ;)


SELECT MAX(id)
FROM user;
Nee, dat werkt niet, ga de database maar eens flink stressen, dan zul je zien dat MAX andere waardes oplevert. Er zit namelijk een fractie van een seconde tussen query 1 en query 2, daar kan iemand anders dus nog een insert hebben uitgevoerd. En dan kloppen jouw resultaten niet meer... Nooit gebruiken dus, er zijn echte oplossingen beschikbaar.
 

28/05/2008 20:35:00
Quote Anchor link
Is het dan FEITELIJK gezien niet zo dat die persoon die tussendoor komt dan ook daadwerkelijk de laatste is? Absoluut gezien dan :) De resultaten zullen dan JUIST kloppen.

Weet niet waar je het voor wil gebruiken, maar ligt dus ook aan het doel of het een juiste oplossing is (toch?). Bijvoorbeeld voor 'nieuwste gebruiker' of iets in die richting..
Gewijzigd op 01/01/1970 01:00:00 door
 
Frank -

Frank -

28/05/2008 20:39:00
Quote Anchor link
De TS wil weten hoe hij het id van zijn INSERT te pakken krijgt, dat dus NOOIT EN TE NIMMER met de functie MAX(). Die doet namelijk heel wat anders, die haalt de hoogste waarde op. Nu zou het nieuwste id best de hoogste waarde kunnen zijn, maar die garantie heb je niet. MAX gebruik je dus voor andere toepassingenl, toepassingen waar de TS niet naar vraagt.

De laatste INSERT is altijd jouw INSERT. Dat een fractie van een seconde later iemand anders weer een INSERT uitvoert, heb jij niks mee te maken. Dan kun je ook wachten tot je een ons weegt, er zal altijd wéér een INSERT plaatsvinden, daar kun je niet op gaan wachten.
 

28/05/2008 20:43:00
Quote Anchor link
Mja zo had ik de vraag niet begrepen. Ik dacht dat hij bedoelde wat ik bijvoorbeeld in mijn edit aangaf het weergeven van een 'nieuwste gebruiker' bijvoorbeeld. Maar goed, dat heb ik dan verkeerd begrepen. Dan is het inderdaad de laatste RECORD in plaats van de laatste INSERT, my bad
Gewijzigd op 01/01/1970 01:00:00 door
 
Alex

Alex

28/05/2008 21:32:00
Quote Anchor link
Bedankt allemaal,

mysql_insert_id() doet het goed genoeg.

CU
 
Crispijn -

Crispijn -

28/05/2008 21:40:00
Quote Anchor link
De laatste gebruiker ophalen kan dan altijd nog het beste door een registratie datumtijd veld in je tabel op te nemen.

Met een ORDER BY registratiedatumtijd DESC LIMT 1 ben je er dan al...
 
Gerben Jacobs

Gerben Jacobs

29/05/2008 10:11:00
Quote Anchor link
//
Gewijzigd op 01/01/1970 01:00:00 door Gerben Jacobs
 
Mr.Moe

Mr.Moe

29/05/2008 10:58:00
Quote Anchor link
Crispijn schreef op 28.05.2008 21:40:
De laatste gebruiker ophalen kan dan altijd nog het beste door een registratie datumtijd veld in je tabel op te nemen.

Met een ORDER BY registratiedatumtijd DESC LIMT 1 ben je er dan al...



Dit is volgens mij altijd het meest juiste. Want in sommige gevallen (niet dat ik dat goed keur) kan jezelf die ID invullen, waardoor het laatste bericht niet altijd het hoogste is.
 
Terence Hersbach

Terence Hersbach

29/05/2008 11:09:00
Quote Anchor link
RemeysenThomas schreef op 29.05.2008 10:58:
Dit is volgens mij altijd het meest juiste. Want in sommige gevallen (niet dat ik dat goed keur) kan jezelf die ID invullen, waardoor het laatste bericht niet altijd het hoogste is.

dan ben je toch ergens niet helemaal lekker bezig..

het gaat er meer om dat wanneer er een backup komt, de id's niet perse hoeven te kloppen (auto-increment kan dan doorlopen).
 
Frank -

Frank -

29/05/2008 12:11:00
Quote Anchor link
Een id klopt altijd, het betekent niks en is uniek. Verder heeft het geen enkele betekenis of waarde. Ken die er dan ook niet aan toe.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.