⊗ppMVDFmMdP 35 of 35 menu

Implementering av förälder till alla modeller

Låt oss implementera föräldraklassen för alla modeller:

<?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) { // här kommer att finnas någon kod } protected function findMany($query) { // här kommer att finnas någon kod } } ?>

Som du kan se, i klassens konstruktor genomför vi anslutning till databasen. Det finns dock ett problem: varje skapad modell (om inuti en kontrolleråtgärd kommer att finnas flera modeller) kommer att göra sin egen anslutning till databasen, och det är inte optimalt.

Låt oss göra så att anslutning till databasen endast skapas för den första skapade modellen, och de andra modellerna använde den redan skapade anslutningen. För att göra detta, egenskapen link gör vi statisk:

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // om egenskapen inte är satt, så ansluter vi 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) { } } ?>

Kopiera den medföljande koden för klassen Model och placera den i filen /core/Model.php.

Implementera metoden findOne i denna klass. Testa dess funktion.

Implementera metoden findMany i denna klass. Testa dess funktion.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa