Gjest Slettet+71234 Skrevet 13. september 2008 Del Skrevet 13. september 2008 Hei. Jeg har da nettopp begynt med PHP og MySQL, og driver på med å sette opp ei nettside. Jeg trenger imidlertig hjelp med å utføre to forskjellige spørringer på en gang. Hvordan skal knytter man sammen disse to spørringene slik at begge to utføres samtidig? ("INSERT INTO `web_ecomments` (`eid`,`author`,`feedback`,`date`,`comment`) VALUES ('".$id."','".$author."','".$feedback."','".$date."','".$comment."')") og ("UPDATE `web_profile` SET `postcounter` + 1 WHERE `name`=".$_SESSION['pname']."'") Kan heller ikke garantere at koden stemmer 100%, men det får bli et problem jeg løser senere. Må bare beklage hvis dette var dårlig forklart, som sagt er jeg helt fersk innen PHP og MySQL. På forhånd tusen takk for din hjelp! Terje Lenke til kommentar
terjeelde Skrevet 13. september 2008 Del Skrevet 13. september 2008 ("INSERT INTO `web_ecomments` (`eid`,`author`,`feedback`,`date`,`comment`) VALUES ('".$id."','".$author."','".$feedback."','".$date."','".$comment."')") Hei, Nå er jeg ikke egentlig noen PHP-mann, men det der ser ikke fryktelig trygt ut. Hvis jeg leser koden rett, så setter det inn verdiene fra brukeren direkte i SQLen. Det er en *stor* no-no. Se for deg at noen legger inn følgende comment: "DROP TABLE web_ecommments; Kan tenkes du vil ha ett problem da? Terje Lenke til kommentar
gxi Skrevet 13. september 2008 Del Skrevet 13. september 2008 Hvis du tenker på at du må ha begge spørringene til å utføres, eller ingen av dem (f.eks dersom den blir avbrutt mellom dem), så kan du bruke transactions. Med transactions vil enten alle spørringene bli utført, eller ingen av dem. For å bruke transactions må det brukes MySQL v. 4.0+(?) og databaselagringsmotoen InnoDB (det vil altså ikke fungere med MyISAM som er stort sett standard). Du får ingen feilmelding om det ikke fungerer, det bare blir kjørt som ellers. Kjør denne spørringen før du utfører spørringen: mysql_query('BEGIN'); så utfører du spørringene, og kjører følgende etter det mysql_query('COMMIT'); Det er uansett veldig viktig å skjønne hva dette er, og hvordan det fungerer, fordi ellers kan du likegodt bare droppe det. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå