- Pénzköteggel párnázta ki a memóriaszektor a Samsung negyedévét
- Megszaladt az AMD új csúcsprocesszorának árazása
- Nvidia GPU-k jövője - amit tudni vélünk
- Milyen billentyűzetet vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- OLED TV topic
- Milyen TV-t vegyek?
- Szomjan halunk, míg az AI dolgozik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Analóg fényképezés
Új hozzászólás Aktív témák
-
Speeedfire
félisten
Ismét oop, ismét szívás van vele. Konkrétan a __destruct() függvénnyel.
Elvileg a kód ha jól tudom amikor végzett az objektumokkal akkor megvizsgálja, hogy van-e __destruct() rész ha van akkor végrehajtja.
Jelen esetben van, célja elvileg az lenne hogyha futás közben módosult valami adat akkor azt visszaírja az adatbázisba. De ez sajnos nem akar összejönni."Real-time"-ban átírja az adatot, de nem módosítja...illetve ha beillsztek még egy try() catch() blokkot akkor errort is dob...
Ma a kód az előzőnek a tovább bővített változata:
class Felhasznalo2 {
private $_tulajdonsagok;
private $_hAB;
private $_modositottTulajdonsagok;
public function __construct($felh_azon) {
$this->_tulajdonsagok = array();
$this->_modositottTulajdonsagok = array();
$this->_tulajdonsagok['azon'] = null;
$this->_tulajdonsagok['felhnev'] = null;
$this->_tulajdonsagok['valodinev'] = null;
$this->_hAB = mysql_connect('localhost','root','');
if(!is_resource($this->_hAB)) {
throw new Exception('Az adatbazis kapcsolat nem hozhato letre!');
}
$kapcsolodas = mysql_select_db('oop', $this->_hAB);
if(!$kapcsolodas) {
throw new Exception('Az adatbazis nem hasznalhato');
}
$sql = 'select * from felhasznalo where azon = '.$felh_azon.'';
$eredmeny = mysql_query($sql, $this->_hAB);
if(!mysql_num_rows($eredmeny)) {
throw new Exception('Az adatbazisban nincs '.$felh_azon.' azonositoju felhasznalo');
}
$sor = mysql_fetch_assoc($eredmeny);
$this->_tulajdonsagok['azon'] = $sor['azon'];
$this->_tulajdonsagok['felhnev'] = $sor['felhnev'];
$this->_tulajdonsagok['valodinev'] = $sor['valodinev'];
}
function __get($tulajdonsagnev) {
if(!array_key_exists($tulajdonsagnev, $this->_tulajdonsagok)) {
throw new Exception('Ervenytelen tulajdonsag-érték!');
}
if(method_exists($this, $tulajdonsagnev. 'Lekerdezes')) {
return call_user_func(array($this, $tulajdonsagnev . 'Lekerdezes'));
}
else {
return $this->_tulajdonsagok[$tulajdonsagnev];
}
}
function __set($tulajdonsagnev, $ertek) {
if(!array_key_exists($tulajdonsagnev, $this->_tulajdonsagok)) {
throw new Exception('Ervenytelen tulajdonsag-ertek');
}
if(method_exists($this, $tulajdonsagnev . 'Beallitas')) {
return call_user_func(array($this, $tulajdonsagnev . 'Beallitas'), $ertek);
}
else {
if($this->_tulajdonsagok[$tulajdonsagnev] != $ertek && !in_array($tulajdonsagnev, $this->_modositottTulajdonsagok)) {
$this->_modositottTulajdonsagok[] = $tulajdonsagnev;
}
$this->_tulajdonsagok[$tulajdonsagnev] = $ertek;
}
}
function azonBeallitas($ertek) {
throw new Exception('A felhasznalodi azonositot nem lehet megvaltoztatni!');
}
function koszontes() {
echo 'Szia! '.$this->valodinev.' vagyok! A felhasználói azonositom '.$this->azon.'! A nickem '.$this->felhnev.' !<br/>';
}
function __destruct() {
if(sizeof($this->_modositottTulajdonsagok)) {
$sql = 'update felhasznalo set';
$utasitasBeallitas = array();
foreach($this->_modositottTulajdonsagok as $tul) {
$utasitasBeallitas[] = $tul .' = ' . $this->_tulajdonsagok[$tul];
}
$sql .= join(', ', $utasitasBeallitas);
$sql .= 'where azon = '. $this->azon;
$hEredm = mysql_query($sql, $this->_hAB);
}
mysql_close($this->_hAB);
}
}
try {
$obj = new Felhasznalo2(1);
$obj->valodinev = 'Tóth Szabi';
$obj->koszontes();
}
catch (Exception $e) {
echo 'Hiba: ', $e->getMessage(), "\n";
}Ha hozzáfűzöm még ezt is:
try {
$obj2 = new Felhasznalo2(2);
$obj2->koszontes();
}
catch (Exception $e) {
echo 'Hiba: ', $e->getMessage(), "\n";
}Akkor hibát ír ki nekem:
Warning: mysql_query(): 3 is not a valid MySQL-Link resource in D:\munka\web\!!!oop\index.php on line 279
Warning: mysql_close(): 3 is not a valid MySQL-Link resource in D:\munka\web\!!!oop\index.php on line 282Az sql tábla:

Új hozzászólás Aktív témák
- Mit tehetsz jogilag, ha átvertek, megkárosítottak a Hardveraprón?
- Pénzköteggel párnázta ki a memóriaszektor a Samsung negyedévét
- Crimson Desert
- Megszaladt az AMD új csúcsprocesszorának árazása
- Nvidia GPU-k jövője - amit tudni vélünk
- Milyen billentyűzetet vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- OLED TV topic
- Teljes verziós játékok letöltése ingyen
- 50 év után kilőtt négy űrhajós a Holdra
- További aktív témák...
- Szép! HP EliteBook 855 G7 Fémházas Strapabíró Laptop 15,6" -65% AMD Ryzen 3 PRO 4450U 16/256 FHD
- HP 250RG10 3-100U 15 8GB/512 PC (B9YG6ET) Bontatlan (2db)
- Radiomaster TX16S MAX Mark II ELRS táv
- thrustmaster ts pc racer ferrari 488 challenge edition
- HP EliteBook 655 G10 15" Ryzen 5 PRO 7530U 32GB RAM Garancia 2028.02.27.
- iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4266
- Apple MacBook Pro 13" M2 (2022) 8GB / 256GB asztroszürke
- GAMING PC! Ryzen 5700X / RTX 3070 / 32GB 3600MHz / SSD / 700w Gold!
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Apple iPhone 14 Pro 128GB,Újszerű,Dobozaval,12 hónap garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

