Avatar billede unknown_someone Juniormester
19. maj 2002 - 14:23 Der er 13 kommentarer og
1 løsning

id på netop indsat post i mysql

som titlen antyder; hvordan finder jeg id på den post jeg lige har indsat i en mysql database?
Avatar billede erikjacobsen Ekspert
19. maj 2002 - 14:30 #1
Du skal sikkert bruge den i en ny INSERT sætning, og der kan du (forudsat du ikke lukker
din forbindelse mellem den INSERT der laver en ny id, og den SQL-sætning der skal bruge den):

sql = "insert into tabel (refid) values(last_insert_id())"

Det kan altså gøres i ren SQL.
Avatar billede unknown_someone Juniormester
19. maj 2002 - 14:42 #2
kool nok - jeg tester det lige lidt senere, men har lige et tillægsspørgsmål;

hvis nu der bliver oprettet to poster på samme tid - er der så noget risiko for, at der byttes om på de to id'er?
Avatar billede erikjacobsen Ekspert
19. maj 2002 - 14:46 #3
nej, dit id huskes pga din connectiom
Avatar billede unknown_someone Juniormester
20. maj 2002 - 14:51 #4
jeg kan ikke få det til at virke... udskriver jeg min sql, får jeg bare dette resultat;

insert into tabel (refid) values(last_insert_id())

og altså ikke noget id... jeg kan heller ikke trække det ud i en variabel?
Avatar billede erikjacobsen Ekspert
20. maj 2002 - 15:25 #5
du skal sige mysql_query til udtrykket
Avatar billede unknown_someone Juniormester
20. maj 2002 - 15:29 #6
huh?
Avatar billede erikjacobsen Ekspert
20. maj 2002 - 15:31 #7
Ja, hvis du udfører din insert, så sætter den selv nummeret ind.
Skal du stå med det i hånden, skal du udføre

  select last_insert_id
Avatar billede unknown_someone Juniormester
20. maj 2002 - 15:38 #8
ah - så virker min insert :)

men det vil så sige, at skal jeg bruge mit id i en variabel, så er jeg tvunget til at lave endnu en sql for at vælge den?

du må gerne komme med et svar :)
Avatar billede erikjacobsen Ekspert
20. maj 2002 - 15:40 #9
Yeps, endnu en SQL - men den er billig, da den ikke skal ned
og pille i tabellerne. Du kå jo også gøre det omvendt. Trække
nummeret ud først, og så bruge det i din insert.

Pas også på, at den anden insert måske laver sit eget nye
autoincrement nummer. Der huske kun ét
Avatar billede unknown_someone Juniormester
20. maj 2002 - 15:44 #10
jeg takker mange gange :)
Avatar billede unknown_someone Juniormester
20. maj 2002 - 15:59 #11
lige en enkelt ting... den ekstra sql når jeg vil have id i en variabel - hvordan finder jeg den?

SQL2 = "Select last_insert_id()"
conn.Execute(SQL2)

id = ?
Avatar billede unknown_someone Juniormester
20. maj 2002 - 16:06 #12
hov...

SQL2 = "Select last_insert_id()"
Set rs = conn.Execute(SQL2)
   
id = ?
Avatar billede erikjacobsen Ekspert
20. maj 2002 - 16:07 #13
rs(0)
Avatar billede unknown_someone Juniormester
20. maj 2002 - 16:10 #14
YEAH YEAH! :oD
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
Kurser inden for grundlæggende programmering

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