- Honor Magic V5 - méret a kamera mögött
- Milyen okostelefont vegyek?
- OnePlus Nord 5 - lehűti a kedélyeket
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Bivalyerős lett a Poco F6 és F6 Pro
- Samsung Galaxy Watch6 Classic - tekerd!
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Megjött Magyarországra a legnagyobb akkuval szerelt Redmi
- Amazfit Balance - ár-érték egyensúly
- Android alkalmazások - szoftver kibeszélő topik
Ú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
- Asztali PC , i5 7400 , 1660 Super , 16GB DDR4 , 480GB SSD
- Bomba ár! Asus N551JQ - i7-4710HQ I 8GB I 256GB SSD I GT845M I 15,6" FHD I Cam I W10 I Garancia!
- Bomba ár! Lenovo IdeaPad V330-15IKB: i7-8G I 8GB I 256SSD I 15,6" FHD I Cam I W11 I Garancia!
- Bomba ár! Lenovo IdeaPad V130-15IKB: i5-8G I 8GB I 256SSD I 15,6" FHD I Cam I W11 I Garancia!
- iPhone 16 Pro Max 256GB Black - 2026.05.28.-ig Nemzetközi Garancia
- Xiaomi Redmi 10 128GB Kártyafüggetlen 1Év Garanciával
- Okosóra felvásárlás!! Samsung Galaxy Watch 5 Pro, Samsung Galaxy Watch 6 Classic
- Acer TravelMate P214 i3-1115G4 12GB 512GB 14" FHD 1év garancia
- Xiaomi Redmi 12C 64GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! ASUS H87I-PLUS H87 chipset alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: FOTC
Város: Budapest