Hirdetés
- Szintet lépett "lopakodó" alaplap készül a Colorful műhelyében
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Soha nem szabta ilyen pénztárcabarátra új CPU-it az Intel
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Amlogic S905, S912 processzoros készülékek
- OLED TV topic
- Androidos fejegységek
- Apple MacBook
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Akciókamerák
Ú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
- Samsung Galaxy Felhasználók OFF topicja
- Napelem
- Google Pixel 10a – évismétlés
- Milyen légkondit a lakásba?
- Linux Mint
- Szintet lépett "lopakodó" alaplap készül a Colorful műhelyében
- Gitáros topic
- Automata kávégépek
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- További aktív témák...
- HIBÁTLAN iPhone 13 Mini 256GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS4428
- AKCIÓS CSÍKOS! MacBook Pro 16" M1 Pro 16GB 512GB Gar.
- MikroTik / hálózati eszközök több típus, készletről
- BESZÁMÍTÁS! Asus ROG Strix B450F R5 5600 32GB DDR4 512GB SSD RTX 2070 Super 8GB Zalman S2 TG TT 650W
- Használt 1TB NVME SSD-k.
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

