03. august 2004 - 20:39
Der er
10 kommentarer og 1 løsning
hvordan får jeg fat i LAST_INSERT_ID()
jeg har en sql der opretter nogle data: SQLstmt = "INSERT INTO rapport_submenu (rapport_navn,rapport_beskrivelse,rapport_kategoriid,rapport_url,rapport_mgf_navn,rapport_varenummer,rapport_dato,rapport_summeret)" SQLstmt = SQLstmt & " VALUES ('" & request.form("rapport_navn") & "','" & request.form("rapport_beskrivelse") & "'," & rapport_kategoriid & ",'" & rapport_url & "','" & request.form("rapport_mgf_navn") & "'," & CheckboxToDB(request.form("rapport_varenummer"))&"," & CheckboxToDB(request.form("rapport_dato"))&"," & CheckboxToDB(request.form("rapport_summeret"))&")" Conn.Execute (sqlstmt) Nu vil jeg så gerne vide hvad der blev skrevet i feltet "rapport_id" der er af typen "autolncrement" jeg mener at have fundet ud af at jeg skal bruge LAST_INSERT_ID() men hvordan ?
Annonceindlæg fra Academic Work Denmark A/S
Slettet bruger
03. august 2004 - 21:04
#1
Hvis du bruger PHP kan du udskrive den med mysql_insert_id()
03. august 2004 - 21:05
#2
Du laver bare en: SELECT LAST_INSERT_ID()
03. august 2004 - 21:06
#3
Ganske almindelig query som returnerer en række og en kolonne.
03. august 2004 - 22:18
#4
hvis jeg skriver SELECT LAST_INSERT_ID() hvordan ved den så hvilken tabel det er ? og at det ikke er en anden der har oprettet den sidste ?
03. august 2004 - 22:21
#5
LAST_INSERT_ID() er uafhængig af tabel men afhængig af connection. D.v.s. at den returnerer den sidste auto genererede værdi i denne connection uanset tabel. Så hvis du laver query på din connection lige efter at have lavet insert på din connection, så er der ingen muligheder for fejl.
04. august 2004 - 15:30
#6
jeg bruge ASP jeg kan først teste iaften, så: hvis jeg laver det sådan: SQLstmt = "INSERT INTO rapport_submenu (rapport_navn,rapport_beskrivelse,rapport_kategoriid,rapport_url,rapport_mgf_navn,rapport_varenummer,rapport_dato,rapport_summeret)" SQLstmt = SQLstmt & " VALUES ('" & request.form("rapport_navn") & "','" & request.form("rapport_beskrivelse") & "'," & rapport_kategoriid & ",'" & rapport_url & "','" & request.form("rapport_mgf_navn") & "'," & CheckboxToDB(request.form("rapport_varenummer"))&"," & CheckboxToDB(request.form("rapport_dato"))&"," & CheckboxToDB(request.form("rapport_summeret"))&")" Conn.Execute (sqlstmt) jeg kan først teste iaften, så: hvis jeg laver det sådan: SQLstmt = "INSERT INTO rapport_submenu (rapport_navn,rapport_beskrivelse,rapport_kategoriid,rapport_url,rapport_mgf_navn,rapport_varenummer,rapport_dato,rapport_summeret)" SQLstmt = SQLstmt & " VALUES ('" & request.form("rapport_navn") & "','" & request.form("rapport_beskrivelse") & "'," & rapport_kategoriid & ",'" & rapport_url & "','" & request.form("rapport_mgf_navn") & "'," & CheckboxToDB(request.form("rapport_varenummer"))&"," & CheckboxToDB(request.form("rapport_dato"))&"," & CheckboxToDB(request.form("rapport_summeret"))&")" Conn.Execute (sqlstmt) SQLstmt2 = "SELECT LAST_INSERT_ID()" Conn.Execute (SQLstmt2) Set rs1 = conn.Execute(SQLstmt2) conn.Close Set conn = nothing Set SQLstmt = nothing hvad skal jeg så skrive for at få vist LAST_INSERT_ID() ? Response.Write = rs1("LAST_INSERT_ID()") eller hvad ?
04. august 2004 - 15:33
#7
Nu er jeg ikke skrap til ASP. Kan du ikke bruge rs1(1) altså bede om første kolonne ? Hvis ikke så bruger du bare: SQLstmt2 = "SELECT LAST_INSERT_ID() AS N" Conn.Execute (SQLstmt2) Set rs1 = conn.Execute(SQLstmt2) Response.Write rs1("N")
04. august 2004 - 15:36
#8
UPS ! det fik jeg da nuk lige skrevet 2 gange !! prøver lige igen jeg kan først teste iaften, så: hvis jeg laver det sådan: SQLstmt = "INSERT INTO rapport_submenu (rapport_navn,rapport_beskrivelse,rapport_kategoriid,rapport_url,rapport_mgf_navn,rapport_varenummer,rapport_dato,rapport_summeret)" SQLstmt = SQLstmt & " VALUES ('" & request.form("rapport_navn") & "','" & request.form("rapport_beskrivelse") & "'," & rapport_kategoriid & ",'" & rapport_url & "','" & request.form("rapport_mgf_navn") & "'," & CheckboxToDB(request.form("rapport_varenummer"))&"," & CheckboxToDB(request.form("rapport_dato"))&"," & CheckboxToDB(request.form("rapport_summeret"))&")" Conn.Execute (sqlstmt) SQLstmt2 = "SELECT LAST_INSERT_ID()" Conn.Execute (SQLstmt2) Set rs1 = conn.Execute(SQLstmt2) conn.Close Set conn = nothing Set SQLstmt = nothing hvad skal jeg så skrive for at få vist LAST_INSERT_ID() ? Response.Write = rs1("LAST_INSERT_ID()") eller hvad ?
04. august 2004 - 15:37
#9
Det tror jeg er rigitg, du høre fra mig :)
04. august 2004 - 20:53
#10
Det var bare helt rigtig tak for det Smider du lige et svar ?
04. august 2004 - 21:20
#11
svar
Computerworld tilbyder specialiserede kurser i database-management