Avatar billede Slettet bruger
06. juni 2010 - 02:02 Der er 7 kommentarer og
1 løsning

Forudse id i SQL og returner det

Hej!

Jeg skal have indsat en række i databasen, som har en auto increment som "id".

Findes der en kode, der kan gå ind og returnere det næste id, som auto incrementen tæller op til? Skal nemlig bruge det længere nede i mit script.


mysql_query('INSERT into bruger_redskaber VALUES("",'.$antal.',NOW());
Avatar billede arne_v Ekspert
06. juni 2010 - 02:26 #1
LAST_INSERT_ID() vil returnere det sidst genererede id på connection.

F.eks.:

mysql_query('INSERT into bruger_redskaber VALUES("",LAST_INSERT_ID(),NOW());
Avatar billede Slettet bruger
06. juni 2010 - 15:40 #2
tak, men hvordan putter jeg så dette id ind i en variable?
Avatar billede arne_v Ekspert
06. juni 2010 - 15:53 #3
I 99.9% af tilfældene har man ikke brug for at putte det ind i en variabel med angiver bare LAST_INSERT_ID() der hvor man ville bruge variablen.

Hvis du vil have fat på den så lav en:

SELECT LAST_INSERT_ID()

(eller den tilsvarende PHP mysql extension funktion)
Avatar billede Slettet bruger
06. juni 2010 - 17:01 #4
Jeg kan ikke rigtig forstå.

Så vidt jeg har forstået, så bruges last_insert_id() i mysql, men det jeg har brug for er at gemme det sidste id i en variable, som jeg skal bruge i en anden sql, der skal indsætte en ny række i en anden database.


mysql_query('INSERT into bruger_redskaber VALUES("<NÆSTE ID GEMMES>",'.$antal.',NOW())');


mysql_query("INSERT into redskaber_panel VALUES (<GEMTE ID INDSÆTTES HER>)");
Avatar billede arne_v Ekspert
06. juni 2010 - 17:17 #5
Hvis du absolut har brug for at have variablen i PHP, så kan du:

INSERT INTO sometable (f1, f2, f2) VALUES (val1, val2, val3)
SELECT LAST_INSERT_ID()

Men i langt de fleste tilfælde skal variablen bruges i en efterfølgende INSERT og så kan man nøjes med:

INSERT INTO sometable (f1, f2, f2) VALUES (val1, val2, val3)
INSERT INTO someothertable (f4,f5) VALUES(LAST_INSERT_ID(), val5)
Avatar billede Slettet bruger
06. juni 2010 - 22:10 #6
Det virker sgu! =)
Tak
Avatar billede arne_v Ekspert
06. juni 2010 - 23:32 #7
så smider jeg et svar
Avatar billede arne_v Ekspert
04. juli 2010 - 03:25 #8
så mangler du bare at acceptere svaret
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester