ďťż

[php/mysql]problem z wywołaniem metody

       

Podstrony


telcocafe

mam taką oto metodę w mojej klasie do obsługi sesji, zapisuje wszystkie zmienne do bazy danych:

private function saveSessionVar(){ $result = $this->hDB->query("SELECT `var_name` FROM `session_var` WHERE `session_id` = {$this->iNativeSID}"); while($aRow = $result->fetch_assoc()){ $tmp[] = $aRow['var_name']; } $stmt1 = $this->hDB->prepare("UPDATE FROM `session_var` SET `var_val` = ? WHERE `session_id`= {$this->iNativeSID}, `var_name` = ?"); //1 $stmt2 = $this->hDB->prepare("INSERT INTO `session_var` VALUES (`session_id`= {$this->iNativeSID},`var_name` = ?,`var_val` = ?)");//2 foreach($this->aValues as $nm => $val){ if(isset($tmp[$nm])){ $stmt1->bind_param("ss", serialize($val),$nm); $stmt1->execute(); } else { $stmt2->bind_param("ss", $nm,serialize($val));//3 $stmt2->execute(); } } }

w (1) przygotowuje 1 zapytanie, w (2) drugie następnie rozpoczyna sie pętla 'foreach' i dostaje w (3) błąd :

Fatal error: Call to a member function bind_param() on a non-object in D:\WebServ\httpd\demo2\class\class.xSession.php on line 40

Interesuje mnie to czy taka konstrukcja jest możliwa, ew w czym tkwi błąd?



Nie używasz cudzysłowów podczas dodawania ciągów znaków. To jedyna rzecz, która mi się najbardziej rzuca w oczy (nie znam całej struktury klasy).

Sprawdź co zwraca $stmt1 i $stmt2. Nie wiemy dokładnie co wykonują te funkcje wiec wiele nie możemuy ci powiedzieć. Aczkolwiek treść błędu mówi ci bardzo wiele. Ze próbujesz się odwołać do metody o klasie (jakiejś tam) której egezemplarzem jest $stmt1 czy $stmt2 (nie wiemy która to linia 40).
Użytkownik polasek edytował ten post 05 styczeń 2008, 20:30
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.