⊗ppMVDFmMdP 35 of 35 menu

Kaikkien mallien yläluokan toteutus

Luodaan kaikkien mallien yläluokka:

<?php namespace Core; class Model { private $link; public function __construct() { $this->link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query($this->link, "SET NAMES 'utf8'"); } protected function findOne($query) { // tässä on tuleva jotain koodia } protected function findMany($query) { // tässä on tuleva jotain koodia } } ?>

Kuten näette, luokan konstruktorissa muodostamme yhteyden tietokantaan. On kuitenkin ongelma: jokainen luotava malli (jos yhden kontrollerin toiminnossa on useita malleja) muodostaa oman yhteydensä tietokantaan, mikä ei ole optimaalista.

Tehdään niin, että tietokantayhteys luodaan vain ensimmäiselle luodulle mallille, ja muut mallit käyttävät jo luotua yhteyttä. Tehdään tätä varten ominaisuus link staattiseksi:

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // jos ominaisuutta ei ole asetettu, niin yhdistetään self::$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query(self::$link, "SET NAMES 'utf8'"); } } protected function findOne($query) { } protected function findMany($query) { } } ?>

Kopioi esitetty koodi luokasta Model ja sijoita se tiedostoon /core/Model.php.

Toteuta metodi findOne tässä luokassa. Testaa sen toimintaa.

Toteuta metodi findMany tässä luokassa. Testaa sen toimintaa.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää