Avatar billede tchami Nybegynder
02. september 2003 - 13:04 Der er 2 kommentarer og
1 løsning

Sikre records i MySQL db

Jeg har egentlig to spørgsmål der vedrører subj. Det første kommer her:

1: I mit menu system har jeg to tabeller, en der holder styr på menupunkters
placering og så en der indeholder informationer om det enkelte menupunkt.
Det er også fint nok, men når jeg tilføjer et nyt menupunkt er jeg lidt i
tvivl om min fremgangsmåde er sikker nok hvis f.eks. to brugere opretter et
menupunkt på samme tid. Jeg gør det på følgende måde:
1. Indsæt menupunkt i menu tabellen (menu)
2. Vælg det sidst indsatte id vha. LAST_INSERT_ID() fra menu tabellen
3. Indsæt info i den anden tabel (content)
Her under ses mine SQL sætninger:

strInsertNewPidSQL = "INSERT INTO menu(parent_pid,menu_sortorder) VALUES(" &
intParentPid & "," & intMenuSortOrder & ")"
Conn.Execute(strInsertNewPidSQL)

strSelectLastInsertedRecordSQL = "SELECT LAST_INSERT_ID() AS intLastId FROM
menu"
Set objLastRecordRS = Conn.Execute(strSelectLastInsertedRecordSQL)

strInsertIntoContentSQL = "INSERT INTO content(pid) VALUES (" & objLastRecordRS("intLastId") & ")"
Conn.Execute(strInsertIntoContentSQL)

Er jeg hermed sikret fra at der bliver indsat et forkert id i content
tabellen hvis to brugere samtidig opretter et menupunkt?

Og mit andet spørgsmål:

2: I min content tabel ligger der et felt der hedder content (af typen
text). Dette kan man vha. en tekstboks redigere i, og det bliver bare hentet
ind i tekstboksen vha. en ganske almindelig SELECT, men det går jo ikke at
to brugere f.eks. samtidig kan ændre i indholdet, så hvordan låser jeg
recorden når en bruger redigerer i den? Og hvis recorden er låst skal der jo
gerne komme en fejlmeddelse til andre der prøver at redigere i denne record.
Avatar billede erikjacobsen Ekspert
02. september 2003 - 13:09 #1
Du er sikret at du får de to korrekte, og forskellige, id-er, hvis 2
brugere gør det samtidigt. Dette ID er knyttet til den aktuelle forbindelse.
Avatar billede tchami Nybegynder
02. september 2003 - 13:19 #2
Ok, det var også hvad jeg havde forstået af MySQL manualen. Så langt så godt..
Avatar billede tchami Nybegynder
08. september 2003 - 17:57 #3
Lukker spørgsmålet.
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