mam klase a w niej taką metode
<?php function __set($pram, $value) { $db->query("SELECT * FROM sessions WHERE session_id = '".$this->id."'"); $row = $db->fetch_row(); $values[$pram] = $value; $this->values = $values; $sql = $db->query("UPDATE `sessions` SET session_value = '" . $values. "' WHERE session_id = '" . $this->id . "'"); if ($result) { return true; } else { return false; } } ?>
następnie uzywam kodu do zapisania jakies nowej wartosci
[php]
$session->czy = 'tak';
wartosc jaka zapisuje sie do bazy danych (echo, ktore jest w kodzie) wyglada tak
"a:1:{s:5:"value";s:0:"";}a:2:{s:5:"value";s:0:"";s:3:"czy";s:3:"tak";}"
jeśli
zmienie zmienię __set na setValue i bede odwolywać się tak
$session->setValue('czy', 'tak');
wartośc jaka zapisze się do bazy danych jest prawidłowa i wygląda tak
"a:1:{s:3:"czy";s:3:"tak";}"
dodatkowo widze
że kod w metodzie __set jest wykonywany zakażdym razem nawet jesli nie wywoluje tej metody, moze ktos mi to wytlumaczyc