ďťż
Podstrony
|
telcocafemam 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 |
|||
Sitedesign by AltusUmbrae. |