Mobsan Skrevet 13. juli 2005 Del Skrevet 13. juli 2005 Hvordan kan jeg få tak i id'n på det jeg setter inn i mysql databasen med kall fra php mysql_query("INSERT INTO ---- (id, navn, adr) VALUES ('', 'test', 'adressen') ;"); id i dette tilfellet er auto_increment og trenger å få tak i den verdien som tilhører mitt insatte objekt.... seff kan man bruke max() kommandoen, men den er ikke sikker nok i mitt tilfelle, da man ved uheldigheter kan få system svitch og få satt inn et nytt objekt før man får kjørt neste kall. Hvis dette ikke går, hvordan kan jeg låse MySQL til å kun tillate tilgang fra den ene connectionen/sessionen mens dette skjer. Jeg husker ikke helt hva det heter så, men kanskje det var noe med lock.... Mobsan Lenke til kommentar
ZoRaC Skrevet 13. juli 2005 Del Skrevet 13. juli 2005 $id = mysql_insert_id(); http://no2.php.net/mysql_insert_id Lenke til kommentar
Mobsan Skrevet 13. juli 2005 Forfatter Del Skrevet 13. juli 2005 $temp = mysql_query("INSERT INTO ---- (id, navn, adr) VALUES ('', 'test', 'adressen') ;"); $id = mysql_insert_id($temp); vil det gå? om ikke så kan den ikke være sikker på at det ikke har vært en system svitch mellom der som kan ha manipulert dataen! Lenke til kommentar
christt Skrevet 13. juli 2005 Del Skrevet 13. juli 2005 Slik kan det gjøres med SQL: SELECT LAST_INSERT_ID() as id du kan også bruke LAST_INSERT_ID() direkte i neste query: INSERT INTO tabell2 (brukerid, gruppeid) VALUES (LAST_INSERT_ID(), 4) Lenke til kommentar
Mobsan Skrevet 13. juli 2005 Forfatter Del Skrevet 13. juli 2005 Men fortsatt så er det ingen ting som sier at det ikke kan skje noe mellom de to linjene. Det jeg kanskje mest er ute etter er: lock(TABELL_navn) INSERT..... GET id.... unlock(TABELL_navn) da vil ingen andre ha tilgang til den tabellen mens jeg gjør de kritiske endringene Lenke til kommentar
Mobsan Skrevet 13. juli 2005 Forfatter Del Skrevet 13. juli 2005 Jeg tror jeg fant det MYSQL sine sider Men ser på det senere! Lenke til kommentar
christt Skrevet 13. juli 2005 Del Skrevet 13. juli 2005 da man ved uheldigheter kan få system svitch og få satt inn et nytt objekt før man får kjørt neste kall. LAST_INSERT_ID() og mysql_insert_id() tar hensyn til dette. Du får returnert id'n til den mysql oppkoblingen/session'n du har. Så det er ingen fare for det du skisserer. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå