- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Mégsem búcsúznak a DDR4-es memóriák
- Soundbar, soundplate, hangprojektor
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Iszonyatos mennyiségű hulladékkal járhat a Windows 10 terméktámogatásának vége
- AMD Ryzen 9 / 7 / 5 / 3 3***(X) "Zen 2" (AM4)
- OLED monitor topik
- Nagyon érzékeny lett a játékok archiválására a Nintendo
- Androidos tablet topic
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
Alukard #6929 üzenetére
Szerintem adatbázis-kapcsolati objektumok létrehozásához érdemes lehet a Singleton-mintát alkalmazni. Többnyire az embernek dinamikus weblapok készítésekor egyetlen adatbázis-kapcsolati objektumra van szüksége, persze lehetnek kivételek, de általában előbbi a jellemző.
A kódodban a protected láthatóságú tagváltozóknak semmi szerepe nincs, mivel nem rendeled hozzájuk az értékeket (nincs ilyen sor: $this->sql_host = "localhost"; stb.), hanem csupán lokális érvényességű változóid vannak (pl. $sql_host), így azoknak nem sok értelme van. Mivel tulajdonképpen úgyis csak egyetlen helyen (connect() függvény) csatlakozol az adatbázishoz, nem biztos, hogy érdemes egyáltalán eltárolni ezeket az értékeket az objektumon és leszármazottain belül máshol is elérhető tagváltozókba.
A "var" kulcsszó használata elavult, és igazából értelmetlen is jelen esetben, az nyugodtan lehetne protected (vagy private, de akkor a leszármazottak nem látják).
Az előbbieken túl a $query-ket sehol nem ellenőrzöd, nem kerülöd el az esetleges SQL Injectiont vagy rosszindulatot nem feltételezve csupán esetleges hibákat azzal, hogy escape-eled az átadott stringet (mysql_real_escape_string).
Plusz ha már OOP, akkor már kivételeket is illendő lenne használni, ez a die() ill. ekvivalense, az exit() nagyon ronda megoldás, ahelyett, hogy a megfelelő helyeken kezelnéd az egyes hibákat, egyből leállítod a szkript futását.
Ezenkívül a hibaüzenetbe is muszáj belekötnöm: ez a "Ne zaklasd a rendszergazdát" elég furcsa egy hibaüzenet, inkább neked kéne elnézést kérned a júzertől, hogy para van az adatbázissal, nem még jól le is cseszni.Én személy szerint a PDO-t használom, és ajánlom is a használatát. Támogatja az adatkötést, plusz azt, hogy ne kelljen explicite mindenhol escape-elni a stringeket (elintézi magának), és még sok egyebet, ráadásul full objektumorientált, és szerintem áttekinthetővé teszi a kódot.
Feltettem pastebinre azt az osztályt, amit a Singleton-mintának megfelelően írtam, általában ezt az osztályt használom adatbázis-kapcsolat kiépítésére. A konstruktor és a copy konstruktor privát láthatóságú, így kívülről nem példányosítható tetszőleges számban az objektum.
Van egy külön konfigfájlom, ahol definiálom a saját konstansokat, többek közt az adatbázis-jelszót és -felhasználónevet, ezeket a konstansdefiníciókat most az elejére tettem, középen jön maga az osztály, az osztály kódja alatt pedig egy példa látható a használatára: [PDO Singleton DB class].
Hátha bárki hasznát veszi.
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Lakáshitel, lakásvásárlás
- Autós topik
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Autós topik látogatók beszélgetős, offolós topikja
- Mégsem búcsúznak a DDR4-es memóriák
- Alakul a SpaceX Starlink európai ellenfele
- Mobil flották
- Soundbar, soundplate, hangprojektor
- PlayStation 1 / 2
- További aktív témák...
- TUF A15 FA507NUR 15.6" FHD IPS Ryzen 7 7435HS RTX 4050 16GB 512GB NVMe gar
- ThinkPad T16 Gen2 16" FHD+ IPS érintő i7-1365U 32GB 512GB NVMe ujjlolv IR kam gar
- Thin 15 B12VE 15.6" FHD IPS i5-12450H RTX 4050 16GB 512GB NVMe magyar vbill gar
- Apple iPhone 12 Mini 64Gb, Szép Állapotban, Akku:91% 12 hónap Garancia, Fekete Színben
- Apple iPhone 13 Mini 128Gb, Újszerű Állapotban, Akku:100%, 12 hónap Garancia, Fekete Színben
- 14" Dell Latitude laptopok: 5400, 5480, 5490, 7480, E7440, E7450 / SZÁMLA + GARANCIA
- Wacom Cintiq DTK-2260 - Digitális rajztábla
- BESZÁMÍTÁS! Apple MacBook Pro 14 M2 Pro - M2 Pro 16GB 512GB SSD garanciával hibátlan működéssel
- BESZÁMÍTÁS! Gigabyte A620M R5 7500F 32GB DDR5 500GB SSD RX 6700XT 12GB Cooler Master CMP 520L 750W
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7600X 32/64GB DDR5 RTX 5060Ti 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest