- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- MasterDeeJay: i7 4980HQ asztali gépben (vs i7 4770)
- sziku69: Szólánc.
- Elektromos rásegítésű kerékpárok
- bitpork: Ha Isten létezik...
- Parci: Milyen mosógépet vegyek?
- ldave: New Game Blitz - 2026
- bobalazs: Microsoft Copilot és hasonló hülyeségek egyszerű kigyomlálása /örök megoldás/
Ú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
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- AMD APU (AM4 és AM5) topik
- Genshin Impact (PC, PS4, Android, iOS)
- Két 8 GB-os VGA-ra teszi fel ezt a negyedévet az NVIDIA?
- Sok hűhó négyszázért: AMD Ryzen 7 9850X3D
- Kormányok / autós szimulátorok topikja
- Linux kezdőknek
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- Vanda GAMER-Pc, ASUS B560m, i5-11400F, 16GB DDR4, 1TB PCIe M.2 SSD, RTX 5050 8GB, 550W 90+, WiFi
- Kingston Fury Beast 2x8GB ddr4 2666mhz KF426C16BBK2
- OHH ! Dell Latitude 9430 Üzleti Profi Prémium Ultrabook 14" -80% i7-1265U 32/1TB IRIS Xe FHD+
- Canon EOS 200D +kit objektív és táska ( 6100 expo )
- Chieftec Eco Series 600W táp eladó!
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen
- Apple iPhone 13 mini Red Kompakt méret, nagy teljesítmény 256 GB Használt,szép állapot, 100%
- ÁRGARANCIA!Épített KomPhone i9 14900KF 64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- 5G Lenovo ThinkPad P14s Gen 3 Intel Core i7-1280P Nvidia T550 32GB 1000GB 1 év teljeskörű garancia
- BESZÁMÍTÁS! Acer Vero V277 27 75Hz IPS FHD 4ms monitor garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


