Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze zmianą serwera
Forum PHP.pl > Forum > Bazy danych > MySQL
pc5
Napisałem skrypt kótry nie działa na wersji 4.3.10 (sql 4.1.9) a na 4.1.2 (sql 3.23.49) wszystko działa poprawnie. Zaskoczony jestem troszkę, zwłaszcza że wcześniej nie miałem żadnych problemów, dopiero po przeniesieniu się na inny serv wywala mi coś takiego :

Kod
Warning: mysql_select_db(): Access denied for user 'root'@'localhost' (using password: NO) in /baza/includes/secure.php on line 70

Warning: mysql_select_db(): A link to the server could not be established in /baza/includes/secure.php on line 70


W pliku secure.php mam funkcję która sprawdza połączenie z bazą, ale z tego co zauważyłem to połączenie jest tracone przy przejściach na inne strony. Cały skrypt oparłem na sesjach, ale na innym serwerze nie miałem żadnych problemów. Reg globals było na off, nic specjalnego.

Pomocy!
tts
Cytat
Warning: mysql_select_db(): Access denied for user 'root'@'localhost' (using password: NO) in /baza/includes/secure.php on line 70

Warning: mysql_select_db(): A link to the server could not be established in /baza/includes/secure.php on line 70
wyglada na to, ze masz zle poustawiane haslo i login do bazy.

Cytat
W pliku secure.php mam funkcję która sprawdza połączenie z bazą, ale z tego co zauważyłem to połączenie jest tracone przy przejściach na inne strony.
co to dokladnie oznacza?
pc5
Dziwna sprawa. Teraz CHYBA wszystko działa.

Schemat stron wyglądał mniej więcej tak :

1 Strona logowania
session_start();
require_once("./includes/secure.php"); // w tym pliku dolacany jest plik. polacz. php
polacz(); // ta funkcja tworzyla tylko RAZ polaczenie z baza danych.

Tresc dolaczanego pliku polacz.php

  1. <?php
  2. function polacz()
  3.  {
  4. $sql_Host=&#092;"localhost\";
  5. $sql_User=&#092;"testowy_user\";
  6. $sql_Pass=&#092;"test\";
  7.  
  8. $sql_polaczenie=mysql_connect($sql_Host,$sql_User,$sql_Pass);
  9.  
  10. if($sql_polaczenie)
  11. {
  12.  if(mysql_select_db(BAZA_NAZWA)) //zmienna definiowana przezemnie, dziala
  13.  {
  14.  print(&#092;"<font face=Verdana size=1>Baza danych : <font color=#008000>podłączono<br></font></font>\");
  15.  }
  16. }
  17. else
  18. {
  19.  print(&#092;"<font color=#FF0000>Nie udało połączyć się z bazą danych!</font>\");
  20.  exit;
  21. }
  22.  }
  23. ?>


Wywalal sie blad przy probie odczytania z bazy na innej stronie niz ta na utworzylem polaczenie z baza MySql. Mozliwe ze w nowszej wersji sqla polaczenie z baza ma taki sam zasieg jak zmienne??

Co zrobilem ze dziala?
Wywoluje funkcje polacz na kazdej stronie. Nie podoba mi sie to, ale co zrobic? Tak dziala. Ktos moze mi wytlumaczyc dlaczego polaczenie z baza jest tracone? I dziwne ze dziala to na starszej wersji php i mysqla a na nowszej nie.

Pozdrawiam - pc5
tts
polaczenie z baza nie jest tracone na kazdej nast. stronie bo go po prostu nie ma i nie ma prawa go byc, bo uzywasz funkcji mysq_connect" title="Zobacz w manualu PHP" target="_manual, ktora zamyka polaczenie po zakonczeniu dzialania skryptu. jezeli serwer, na ktorym pracujesz ma dobrze skonfigurowane polaczenia stale to mozesz uzyc mysql_pconnect" title="Zobacz w manualu PHP" target="_manual.
pc5
Cytat(tts @ 2005-03-25 01:51:38)
polaczenie z baza nie jest tracone na kazdej nast. stronie bo go po prostu nie ma i nie ma prawa go byc, bo uzywasz funkcji mysq_connect" target="_blank.

Zatem zaszła zmiana w MySqlu, ponieważ wcześniej nie miałem z tym problemów. Tak więc widać że czas połączenia ma tutaj podobną "żywotność" jak zmienne czy moment do którego wykonuje się skrypt, tutaj domyślnie jedna strona. Bardziej skłaniam się jednak do tej wersji, że połączenie trwa dopóty dopóki istnieje zmienna do której zwrócona została wartość z mysql_connect(). Ale bardzo prawdopodobne jest że się mylę.
tts
moze na serwerze na ktorym pracowales wlasnie mysql_connect() dzialalo jak mysql_pconnect().
Cytat
Bardziej skłaniam się jednak do tej wersji, że połączenie trwa dopóty dopóki istnieje zmienna do której zwrócona została wartość z mysql_connect(). Ale bardzo prawdopodobne jest że się mylę.
no wiec to jest tak, ze id polaczenia zyje dopoki nie zostanie zakonczony skrypt badz nie zostanie wywolana funkcja mysql_close(). uwaga! mysql_close() nie dziala dla polaczen stalych.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.