Guide: PHP- & MySQL-innføring: Kapittel 8
Tid for databaser
Vi har til nå dekket svært mye av språket PHP; i dag tar vi tak i MySQL og introduserer begreper som relasjonsdatabase.
Oppdatering
Sett at du en dag oppdager at Madonna faktisk også har et etternavn, og du har lyst til å oppdatere dette i databasen din. Da kan du enten slette den originale raden og sette inn en ny, men dette kan føre til trøbbel med relasjoner til andre tabeller (som du ennå ikke har lært særlig mye om, og så har du ikke lært å slette noe enda).
For å oppdatere rader i tabellen er du nødt til å bruke en UPDATE-spørring. Den krever også en WHERE-klausul, ellers så endrer den alle rader i tabellen din til de nye verdiene. Du bruker den på følgende måte for å sette Madonnas korrekte fornavn og etternavn;
mysql> UPDATE person SET
-> fornavn = 'Madonna Louise',
-> etternavn = 'Ciccone Ritchie'
-> WHERE fornavn = 'Madonna'
-> LIMIT 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Selve UPDATE-biten av denne spørringen er ganske lett å forstå; vi oppdaterer både fornavnet og etternavnet med nye verdier. Dette gjør vi bare dersom fornavnet allerede er satt til 'Madonna'. Den siste linjen har du ikke sett før, og betyr rett og slett at MySQL bare får lov til å endre en enkelt rad. Du kan endre tallet dersom det er nødvendig. Du kan også benytte LIMIT sammen med SELECT-spørringer, og dette er veldig trygt å eksperimentere med. Strengt tatt er ikke LIMIT påkrevd i spørringen over, siden det faktisk kun finnes en rad i tabellen hvor fornavnet er eksakt lik 'Madonna', men den er kjekk å bruke som et sikkerhetsnett i tilfelle det var flere rader som hadde det samme fornavnet.
Det kan ofte være lurt å sjekke på forhånd om de radene UPDATE faktisk vil endre er de samme som du ønsker å oppdatere. Det gjør du enklest ved å benytte nøyaktig samme WHERE-klausul i en SELECT-spørring.
Du kan nå forsikre deg om at du har oppdatert den korrekte raden som du ønsket;
mysql> SELECT * FROM person WHERE fornavn LIKE 'M%'; +----------------+-----------------+-------------+-------+ | fornavn | etternavn | fodselsdato | epost | +----------------+-----------------+-------------+-------+ | Madonna Louise | Ciccone Ritchie | 1958-08-16 | NULL | +----------------+-----------------+-------------+-------+ 1 row in set (0.00 sec)