Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> __set
propage
post
Post #1





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

Ostrzeżenie: (0%)
-----


mam problem z działaniem tej metody

mam klase a w niej taką metode
  1. <?php
  2. function __set($pram, $value) 
  3. {
  4. global $db;
  5. $db->query("SELECT * FROM sessions WHERE session_id = '".$this->id."'");
  6.  $row = $db->fetch_row(); 
  7. $values = unserialize($row['session_value']); 
  8. if(empty($values))$values=array(); 
  9. $values[$pram] = $value; 
  10. $this->values = $values;
  11. $values=serialize($values);
  12. echo $values;
  13. $sql = $db->query("UPDATE `sessions` SET session_value = '" . $values. "' WHERE session_id = '" . $this->id . "'");
  14. if ($result) {
  15. return true;
  16. } else {
  17. return false;
  18.  } 
  19.  
  20. }
  21. ?>

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

Ten post edytował propage 28.07.2008, 13:40:25
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:22