Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Baza zablokowana, ... a jednak działa!?
majestiq
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Mam dziwny problem.
Używam 2 baz danych gdyż, z powodu dużego obciążenia często dosteje 'kare' 10 minutowej blokady.
W takim wypadku przełączam się na 2 baze.

Realizuje to takim sktyptem (uproszczone):

  1. <?php
  2. error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE );
  3.  
  4. $connection = mysql_connect($db_danee['hostname'], $db_danee['user'], $db_danee['password']);
  5. @mysql_select_db($db_danee['db']);
  6. $sqltest="SELECT * FROM `mp3` LIMIT 1"; 
  7. $res = mysql_query ($sqltest); 
  8. $res = mysql_fetch_array ($res);
  9. var_dump($res);
  10. //exit;
  11.  
  12. if (!is_null($res)) { echo 'baza 1'; }
  13. else { echo 'baza 2'; }
  14.  
  15. ?>


No i jeśli select zwróci wynik to łącze się z 1 bazą, jeśli wynik jest pusty łącze się z bazą zapasową.

No i ogólnie to nawet działa, ale za którymś przełączeniem (może już za 2-3) dzieje się bardzo dziwna sytuacja, bo pomimo, że baza jest zablokowana i nie działa, to ten select zwraca mi wynik
tak jakby baza najzwyczajniej działała i nie jest realizowane przełączenie na tymczasową!

Tak jakby wszystkie dane z bazy były już w jakimś cachu i mimo blokady bazy są pobierane.

Jest to dla mnie duży problem bo dużą część czasu mój serwis nie działa z powodu błędnego sprawdzenia czy dana baza działa.
Spotkał się ktoś z podobną sytuacją (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Pzdr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
majestiq
post
Post #2





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Tutaj problem jest gdzie indziej...
Nawet jak wytnę z w/w kodu fragment połączenia z baza:

  1. <?php
  2. $db_danee["hostname"] = 
  3. $db_danee["user"] = 
  4. $db_danee["password"] = 
  5. $db_danee["db"] = 
  6.  
  7. $connection = mysql_connect($db_danee['hostname'], $db_danee['user'], $db_danee['password']);
  8. @mysql_select_db($db_danee['db']);
  9. ?>


i zostanie tylko:

  1. <?php
  2. error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE );
  3.  
  4.  
  5. @mysql_select_db($db_danee['db']);
  6. $sqltest="SELECT tytul FROM `mp3` LIMIT 1 "; 
  7. $res = mysql_query ($sqltest); 
  8. $res = mysql_fetch_array ($res);
  9. //var_dump($res);
  10. print_r ($res);
  11. //exit;
  12.  
  13. if (!is_null($res)) { echo 'baza 1';}
  14. else { echo 'baza 2'; }
  15. ?>


to i tak echo zwraca: baza 1, tak jakby połączenie było już nawiązane!
Może to coś z sesją, ale chyba to sprawdzałem już.
W takim razie jak zmodyfikować ten kod, żeby w odpowiednim miejscu rozłączał się z bazą i łączył z tą bazą co trzeba a nie tą która już jest wybrana (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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: 23.08.2025 - 17:14