PHP Tietokantaohjelmointi 2 Jouni Juntunen Oulun seudun ammattikorkeakoulu

  • Slides: 7
Download presentation
PHP Tietokantaohjelmointi 2 Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö

PHP Tietokantaohjelmointi 2 Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö

Tiedon päivittäminen useampaan tauluun • Esimerkiksi Demox-tietokannassa tilauksen lisääminen vaati tiedon päivittämistä asiakas, tilaus

Tiedon päivittäminen useampaan tauluun • Esimerkiksi Demox-tietokannassa tilauksen lisääminen vaati tiedon päivittämistä asiakas, tilaus ja tilausrivi -tauluihin

Tiedon päivittäminen useampaan tauluun • Tiedon päivittämisessä pitää ottaa huomioon pää/viiteavain parit siten, että

Tiedon päivittäminen useampaan tauluun • Tiedon päivittämisessä pitää ottaa huomioon pää/viiteavain parit siten, että oikeat arvot päivittyvät tietueille • Tiedon eheydestä pitää huolehtia siten, että jos tilaus tallennetaan, tallennetaan tilaukseen liittyvä asiakas ja tilausrivit aina (tai sitten ei tallenneta mitään) -> käytetään transaktiota

Esimerkki Transaktio alkaa Transaktio keskeytetään Haetaan lisätty astunnus Transaktio keskeytetään Haetaan lisätty tilausnro Transaktio

Esimerkki Transaktio alkaa Transaktio keskeytetään Haetaan lisätty astunnus Transaktio keskeytetään Haetaan lisätty tilausnro Transaktio keskeytetään Transaktioon sidotut tiedot tallennetaan

Lisätyn tietueen pääavaimen arvon hakeminen • Kutsutaan mysql_inserted_id-funktiota heti lisäyslauseen (insert) suorittamisen jälkeen •

Lisätyn tietueen pääavaimen arvon hakeminen • Kutsutaan mysql_inserted_id-funktiota heti lisäyslauseen (insert) suorittamisen jälkeen • My. SQL + PHP huolehtii siitä, että yhtäaikaisten käyttäjien tekemät päivitystoimenpiteet eivät sotke pää/viiteavainpareja • Transaktioiden käyttö vielä varmistaa, että avainparit eivät voi mennä sekaisin

Transaktioista • Viite-eheys säännöt huolehtivat, että tietokantaan ei voi tallentaa ns. Orporivejä (esim. pelkkiä

Transaktioista • Viite-eheys säännöt huolehtivat, että tietokantaan ei voi tallentaa ns. Orporivejä (esim. pelkkiä tilausrivejä) • Transaktioiden avulla voidaan huolehtia, että tietokantaan tallentuu kaikki tarvittava tieto (jos on tilaus, niin sille löytyy aina tilausrivit)

Transaktioiden hallinta PHP: ssä • mysql_query(”BEGIN”) aloittaa transaktioin • mysql_query(”ROLLBACK”) keskeyttää transaktion • mysql_query(”COMMIT”)

Transaktioiden hallinta PHP: ssä • mysql_query(”BEGIN”) aloittaa transaktioin • mysql_query(”ROLLBACK”) keskeyttää transaktion • mysql_query(”COMMIT”) tallentaa transaktion sisällä tehdyt päivitykset tietokantaan