Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sesje a obiekty, mysqli
exman
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 13.11.2005
Skąd: opole

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


Witam!
Otóż mam takie pytanie bardziej natury sensu przechowywania obiektu typu mysqli w sesji.
Chodzi o to, że pisząc skrypty w pracy natknąłem sie na pewien problem dostępu do obiektu mysqli stworzonego poza klasą w odrębnym pliku
includowanym na początku skryptu, by można było z niego korzystać trzeba za każdym razem ten plik załączać (rzecz jasna).
Stwierdziłem, że można by obiekt taki zapisać w zmiennej sesyjnej np $_SESSION['mysqli'] rolleyes.gif .
Teraz pytanie czy ktoś coś takiego robił i na jakie problemy się natknął?
Drugie to jak można (czy można) odnieść się do obiektu z wewnątrz klasy (szukałem już tego ale niestety).
Go to the top of the page
+Quote Post
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Można zapisać do sesji przez serializację. Potem odserializować aby była możliwa dalsza praca.


--------------------
Go to the top of the page
+Quote Post
michal74
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 18.07.2007

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


Najprosciej zrobisz to tak:
0. tworzysz session
1. tworzysz objekt po raz pierwszy w momencie kiedy go bedziesz potrzebowal
2. wywolujesz serialize do jakiejs zmiennej w session
3. w momencie przeladowywania strony sprawdzasz cze istnieje objekt pod okreslonym kluczem w sesji, jesli tak do go pobierasz przypisujac do dowolnej zmiennej korzystajac z funkcji unserialize

pozdro


--------------------
Code developer

tel.: +39.041.2750223
mob.: +39.340.5081178
e-mail: m.luberda@arzanadv.it

Arzanà S.r.l. - web marketing - komunikacja - serwisy www
Go to the top of the page
+Quote Post
exman
post
Post #4





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 13.11.2005
Skąd: opole

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


czy ta serializacja jest konieczna?
ja robiłem tak
  1. <?php
  2. $_SESSION['mysqli'] = $mysqli;
  3. ?>

potem odczyt w dowolnym miejscu
  1. <?php
  2. is_object($_SESSION['mysqli'])
  3. ?>

rozumiem, że serializując ten obiekt zatrzymuje strukturę obiektu ale czy jak tego nie zrobię może się coś stać ?
Go to the top of the page
+Quote Post
starach
post
Post #5





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Dane z tablicy superglobalnej $_SESSION są serializowane automatycznie.
Zresztą sprawdź miejsce w którym one są składowane zobaczysz charakterystyczny ciąg zserializowanych danych.
Go to the top of the page
+Quote Post
exman
post
Post #6





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 13.11.2005
Skąd: opole

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


Jest jakiś sposób na utrzymanie tego połączenia z bazą poprzez zapisanie obiektu w sesji?
Idea była taka, że zapisuje połączenie z bazą w sesji i wykorzystuje go na każdej stronie bez załączania za każdym razem pliku z który tworzy to połączenie,
jednak jak przechodzę na inna stronę to połączenie jest gubione :/

Albo czy jest jakiś sposób do odniesienia się do obiektu mysqli utworzonego poza klasą w jej wnętrzu bez przekazywania obiektu mysqli do klasy za pomocą konstruktora?

Ten post edytował exman 4.10.2007, 10:07:43
Go to the top of the page
+Quote Post
pbnan
post
Post #7





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 27.03.2007
Skąd: Osiek almost City ;-D

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


Obuduj klasę mysqli m.in. w metody __sleep() i __wakeup() o ile dobrze pamiętam.
http://www.devshed.com/c/a/PHP/Working-wit...Objects-in-PHP/ kilka stron o tym masz.


--------------------
"Hmmm, na wakacje trzeba będzie zacząć zarabiać, co nie? ;-] GTA IV się coraz bardziej zbliża... ;-]"
To się nazywa częsty update sygnaturki.
;-)
Go to the top of the page
+Quote Post
NoiseMc
post
Post #8





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


pbnan tam raczej opisane jest jak zapisywac serializowane obiekty w bazie, a nie identyfikator polaczenia z baza.
Nie jestem pewien ale wydaje mi sie ze identyfikator polaczenia wazny jest tylko do czasu az skrypt sie wykona i za kazdym nowym requestem trzeba polaczenie z baza ponawiac aby uzyskac swiezy identyfikator (po to magiczna metoda __wakeup() w php5)


--------------------
Go to the top of the page
+Quote Post

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 - 02:07