---
title: "Få fram ID:et och lägga den i en variabel efter att man har skapat den?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/169311-få-fram-id-et-och-lägga-den-i-en-variabel-efter-att-man-har-skapat-den"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "medialabs"
published: "2008-02-24T01:12:35.000Z"
updated: "2008-02-24T15:51:58.000Z"
replies: 7
views: 777
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/169311-få-fram-id-et-och-lägga-den-i-en-variabel-efter-att-man-har-skapat-den"
---

# Få fram ID:et och lägga den i en variabel efter att man har skapat den?

## #1 — medialabs, 2008-02-24T01:12Z

Hej,

Jag kom precis på en sak, Jag har en sida där jag gör en INSERT till min MySQL-databas (registrerar ny användare) nästa steg efter detta är att jag skickar uppgifterna, username, lösenord och tidpunkt genom ASPEmail, MEN! Jag vill också skicka med ID:et för den INSERTEN, hur får jag reda på vad ID:et i fältet strID är för den nyskapade INSERTEN, vill lägga den i en variabel döpt till t.ex. UniktID?

Misstänker att man måste skapa en ny rad under denna INSERT döpt till SQL2 = GET/SELECT NYASTE ID?

Klockan är sent och jag ber om ursäkt om det slinker med några stavfel i mitt inlägg eller om jag nu krånglade till det.

```
	SQL1 = "INSERT INTO tbluppgifter (strusername, strpassword, strreggad) VALUES " & _
		"('" & Trim(FixInject(Request.Form("anvandarnamn"))) & "'" & _
		", '" & sMD5Password & "'" & _
		", '" & Now() & "')"
```

Permalänk: https://www.webforum.nu/p/169311

## #2 — K@llen, 2008-02-24T10:35Z

last_insert_id() i mysql eller mysql_insert_id() i PHP ger dig senast inlagda postens "räknar"-fält.

Permalänk: https://www.webforum.nu/p/2084666

## #3 — medialabs, 2008-02-24T14:47Z

> **K@llen skrev:**
>
> last_insert_id() i mysql eller mysql_insert_id() i PHP ger dig senast inlagda postens "räknar"-fält.

Använder ASP tillsammans med MySQL. Jag har nu försökt läsa på lite om last_insert_id().

Som jag har tolkat detta så måste den köras i samma "query" eller INSERT? Jag testade att skapa SQL2 och köra denna efter min INSERT i SQL1, men då fick jag fram föregående ID och inte den som jag precis skapade.

men hur får jag in last_insert_id till en variabel egentligen om den ska köras i samma fråga?

```
SELECT LAST_INSERT_ID() AS NyttID FROM tbluppgifter
```

 

```
	SQL1 = "INSERT INTO tbluppgifter (strusername, strpassword, strreggad) VALUES " & _
		"('" & Trim(FixInject(Request.Form("anvandarnamn"))) & "'" & _
		", '" & sMD5Password & "'" & _
		", '" & Now() & "')"
```

```
' ## Stänger anslutningen till databasen
	ConnectREG.Open strConn
	ConnectREG.Execute SQL1, , 128
	ConnectREG.Close
	Set ConnectReg = Nothing
```

 

Tror jag har förvirrat bort mig helt och hållet nu..   :e

Permalänk: https://www.webforum.nu/p/2084710

## #4 — medialabs, 2008-02-24T15:15Z

Tänkt efter lite till:

```

SQL1 = "INSERT INTO tbluppgifter (strusername, strpassword, strreggad) VALUES " & _
		"('" & Trim(FixInject(Request.Form("anvandarnamn"))) & "'" & _
		", '" & sMD5Password & "'" & _
		", '" & Now() & "')"

	ConnectREG.Open strConn
	ConnectREG.Execute SQL1, , 128

SQL1 = "SELECT LAST_INSERT_ID() AS nyid FROM tbluppgifter;"
ConnectREG.Execute SQL1, , 128

		
response.write nyid
response.end
```

 

Men nyid verkar inte innehålla något överhuvudtaget?!

Permalänk: https://www.webforum.nu/p/2084714

## #5 — Gein, 2008-02-24T15:18Z

Du ska inte köra den i samma fråga som Insert. Först exekverar du INSERT-frågan därefter kör du "SELECT LAST_INSERT_ID()" (obs. du behöver inte ange någon tabell) så hämtar den det ID som din senaste INSERT gav förutsatt att du använder dig av auto_increment.

Permalänk: https://www.webforum.nu/p/2084715

## #6 — medialabs, 2008-02-24T15:40Z

Gjorde ingen skillnad efter att jag döpte om den frågan till SQL2 och tog bort tabellnamnet.

Permalänk: https://www.webforum.nu/p/2084717

## #7 — Gein, 2008-02-24T15:48Z

Har du tillgång till en MySQL-terminal så kan du ju alltid testa manuellt att det fungerar.

Permalänk: https://www.webforum.nu/p/2084721

## #8 — LarsG, 2008-02-24T15:51Z

```
SQL1 = "SELECT LAST_INSERT_ID() AS nyid "
set rs = ConnectREG.Execute(SQL1)

response.write rs("nyid")
response.end
```

Permalänk: https://www.webforum.nu/p/2084722

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/169311-få-fram-id-et-och-lägga-den-i-en-variabel-efter-att-man-har-skapat-den
