![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Pewnie głupie pytanie, ale musze je zadać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Czy połączenie z bazą danych uzyskane przez mysql_connect czy mysql_pconnect może być zapisane w sesji i utrzymane po przeładowaniu strony tak, aby skrypt nie musiał sie za każydm razem logować do serwera mysql?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Nie - nie można przechowywać uchwytów połaczeń w sesji, w cookie, ani w żaden inny sposób. Niestety. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Czyli nastepująca funkcjonalność jest niemozliwa do zrealizowania? :
W komercyjnych aplikacjach bazodanowych istnieje funkcjonalność polegająca na tym, że aplikacja uruchomiona w trybie testowym działa na otwartej w bazie danych transakcji. Uzytkownik testuje na bazie rózne rzeczy. Po wyjściu użytkownika (zerwaniu połączenia z bazą) transakcja nie zostaje potwierdzona a dane wracają do stanu początkowego. Ja chciałem zrobić coś podobnego - użytkownik robi pewne rzeczy, ocenia wynik a następnie albo go zatwierdza albo nie, a baza wraca do stanu sprzed zmian. Problem w tym, że po przeładowaniu strony nawiązywane jest nowe połączenie, a stare jest zamykane (z automatycznym skutkiem ROLLBACK) i użytkownik ciagle widzi to samo (baze bez zmian), bo każde przeładowanie strony wszystko resetuje. Więc nie da sie tego zrealizować? Ten post edytował Indeo 24.09.2006, 14:30:44 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
http://pl.php.net/manual/pl/function.mysql-pconnect.php
Cytat mysql_pconnect() zachowuje się prawie jak mysql_connect() z dwoma zasadniczymi różnicami.
Pierwsza, podczas łączenia funkcja najpierw spróbuje znaleźć połączenie (stałe) już otwarte dla tego samego hosta, użytkownika i hasła. Jeżeli je znajdzie, jego identyfikator zostanie zwrócony zamiast otwierania nowego połączenia. Druga, połączenie z serwerem SQL nie zostanie zamknięte po zakończeniu wykonywania skryptu. Zamiast tego połączenie pozostanie otwarte do późniejszego użycia (mysql_close() nie zamyka połączeń nawiązanych za pomocą mysql_pconnect()). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Dobra dobra, tyle to i ja widziałem, ale ja pytam praktycznie - bo dlaczego w takim razie korzystając z mysql_pconnect() ustawiam sobie w bazie zmienną np
a po przeładowaniu strony po tej zmiennej w bazie nie ma już sladu? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Na szybko sklecilem taki skrypcik:
I mi dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) zawsze zmienna jest wyswietlana. Oczywiscie po pierwszym zapuszczeniu skryptu, nalezy usunac linie, ktora ustawia zmienna ponownie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
No a u mnie nie działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Może to kwestia ustawień? |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Ktorego Mysqla masz, podaj dokladna wersje
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Uzywam mysql-5.0.21-win32 ...
Już wszystko jasne. mysql_pconnect działa tak jak to napisał nospor ale tylko kiedy php jest uruchomiony w trybie modułu anie w trybie CGI tak jak miałem wcześniej. Sprawdziłem i teraz działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzieki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 21:30 |