Gå til innhold

To spørringer samtidig


Gjest Slettet+71234

Anbefalte innlegg

Gjest Slettet+71234

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. :p

 

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
Videoannonse
Annonse
("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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...