Avatar billede danino Nybegynder
17. oktober 2005 - 14:21 Der er 8 kommentarer og
1 løsning

Hvordan opdaterer man flere rækker ad gangen?

Kan det lade sig gøre at opdatere flere rækker ad gangen i MySQL? Hvis jeg benytter mig af phpmyadmin kan det godt, hvis jeg f.eks. skriver:
UPDATE sys_lang SET translation='gfhgjdfhgl' WHERE constant='CONSTANT' AND language='danish';UPDATE sys_lang SET translation='gfh4342fhgl' WHERE constant='CONSTANT2' AND language='danish';UPDATE sys_lang SET translation='gdfhhgl' WHERE constant='CONSTANT2' AND language='danish' osv osv osv...

MEN... Hvis jeg skriver det samme i PHP med følgende kode, så melder den fejl ved semikolon'et:
mysql_query("ovenstående query") or die(mysql_error())

Er der nogen der kan svare mig på hvad man skal gøre? Er jeg virkelig nødt til at lave 100 databasekald hver gang jeg skal opdatere (der er på nuværende tidspunkt ca 100 konstanter, og der kommer flere hele tiden)?
Avatar billede erikjacobsen Ekspert
17. oktober 2005 - 14:25 #1
Ja, de nuværende version og kombinationer af PHP og MySql tillader kun een SQL-sætning.
Så lav du bare 100.
Avatar billede Slettet bruger
17. oktober 2005 - 14:29 #2
Har du overvejet at lave dine oversættelser i en flad TXT-fil? Det tror jeg du bliver glad for i længden :)
Avatar billede danino Nybegynder
17. oktober 2005 - 14:30 #3
Ok.. Men så har jeg lige et par spørgsmål til:

1. Belaster det ikke serveren for meget med så mange kald? - På et tidspunkt bliver det til flere hundrede?
2. Hvordan kan det være at phpmyadmin godt kan lave flere i én? - men den deler det måske bare op uden man lægger mærke til det, og så laver det til mange forskellige kald, ligesom jeg skal gøre?
3. Findes der virkelig ikke en smart genvej, ligesom med INSERT, hvor man kan skrive "INSERT INTO tabel ('felt1', 'felt2') VALUES ('text1-1', 'text2-1'), ('text1-2','text2-2')"?
Avatar billede danino Nybegynder
17. oktober 2005 - 14:33 #4
Til el_barto: Ja, det har jeg overvejet, men jeg syntes dengang at det umiddelbart virkede nemmest at styre, hvis oversættelserne lå i en database... Men det kan da godt være jeg ikke har ret :) Jeg tænkte bare at man nok skulle bruge en del regular expressions, og det er ikke min stærke side, men det er måske ikke tilfældet?
Avatar billede Slettet bruger
17. oktober 2005 - 14:36 #5
PHPMyAdmin har en funktion indbygget (en klasse) som du måske kan bruge. Den benytter jeg selv til en SQL-setup fil.
Avatar billede danino Nybegynder
17. oktober 2005 - 14:51 #6
Ja.. Jeg har også kigget lidt på filerne i phpmyadmin, men jeg kan hverken finde hoved eller hale i den kode. Den har jo utrolig mange ekstrafunktioner, så jeg slet ikke kan finde det jeg skal bruge... Kan du fortælle hvor den kode jeg kan bruge befinder sig?
Avatar billede Slettet bruger
17. oktober 2005 - 15:10 #7
Filen hedder read_dump.lib.php
Avatar billede danino Nybegynder
17. oktober 2005 - 15:29 #8
Ok.. Men jeg synes den er lidt for kompliceret til at jeg lige kan se hvad jeg kan bruge den til... Desuden tager mine forespørgsler i alt kun 0.12 sekund, så jeg regner med at det ikke er noget problem. Serveren der kører denne side har kun et minimalt andet arbejde.

Forespørgslerne kører desuden i en foreach, som gennemløber et array (sjovt nok).. Og hvis jeg opdager problemer kan jeg jo bare lade den køre 100 ad gangen eller noget i den stil...
Avatar billede danino Nybegynder
05. december 2005 - 15:23 #9
Ingen har kommet med kommentarer i lang tid nu, så jeg 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
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

IT-JOB