Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekroczenie czasu, funkcja czyszczaca baze ze starych sesji
Diablos
post
Post #1





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


Tworzac i ulepszajac swoj skrypt pokazywania ilosc i osob online napisalem funkcję, ktorej zadaniem jest usuwanie z bazy danych wpisów gdzie time zapisany byl powyzej 3 minut.


Wyglada ona tak:

  1. <?php
  2. function doldsessions()
  3. {
  4. global $tbsessions;
  5.  
  6. $quO = mysql_query('SELECT * FROM ' . $tbsessions . ' ');
  7.  
  8. while ( $uO == mysql_fetch_array($quO) )
  9.  {
  10.  
  11. $time = time() - $uO['time'];
  12. $time = $time/60;
  13.  
  14. if ( $time >= 3 )
  15. {
  16.  
  17. $dOs = mysql_query('DELETE * FROM ' . $tbsessions . ' WHERE ID = ' . $uO['ID'] . ' ');
  18. }
  19. }
  20.  
  21. } 
  22. ?>


Nastepnie wywołuje ja:

  1. <?php
  2. doldsessions();
  3. ?>


Uruchamiam, po stosunkowo dlugim czasie wyswietla mi sie:
Cytat
Fatal error: Maximum execution time of 60 seconds exceeded in C:\Program Files\xampp\htdocs\logowanie\proba.php on line 20


No widze, ze przekroczenie czasu itp. tylko ze nie jestem obeznany w tego typu problemach i nie wiem co tu poprawic.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
crash
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


O rany! Dawno nie widziałem tak niewydajnego sposobu kasowania danych z bazy...

  1. DELETE *
  2. FROM tabela WHERE ( ( now() - time ) / 60 ) >= 3
Go to the top of the page
+Quote Post
Diablos
post
Post #3





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


Troszeczke sie zapedzilem, funkcja wyglada obecnie tak:

  1. <?php
  2. function doldsessions($time)
  3. {
  4. global $tbsessions;
  5.  
  6. $dOs = mysql_query('DELETE * FROM ' . $tbsessions . ' WHERE ( ( NOW() - time ) / 60 ) >= ' . $time . ' ');
  7. if ( !$dOs ) { echo 'kaput'; }
  8.  
  9.  
  10. } 
  11. ?>


Wyswietla sie kaput ;p
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 11:55