Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] błąd po przeniesieniu bazy danych na inny serwer
Forum PHP.pl > Forum > Bazy danych > MySQL
piano
Witam. guitar.gif
Mam pytanko. dry.gif
Po przeniesieniu bazy danych na inny serwer (zmieniana dostawcy), pojawił mi sie taki komunikat.

  1. Warning: mysql_fetch_array(): supplied argument IS NOT a valid MySQL result resource IN /home/podk/public_html/proba/aktual.php ON line 10


Prośba o 2 zdania komentarza bo nie wiem jak za to sie zabrać...

P.S. Dodam że na starym serwerze wszysko działało a samą bazę importowałem tak więc wpisy powinny być ok.
Dzieki.
nospor
Przyczyn moze byc milion. Za malo dales szczegolow.

A czy ty przenosiles tylko baze, czy php tez poszlo na inny serwer? Bo jesli php tez, toblad moze byc zwiazany z register_globals. Jesli do zmiennych z forma/url odwolywales sie tak $zmienna to robiles bardzo źle smile.gif
piano
Sprawa wyglądała tak, że
testowałem strony (które łączyły sie z bazą MySQL) na serwerach strefa.pl (MySQL 4.1.19. i PHP 5.0.4).
Później przeniosłem ja na serwery klatka.pl (MySQL 4.1.22-standard-log, PHP 4.4.7).
Baze danych importowałem a strony poprostu wgrałem przez ftp.
Sądziłem, że wszystko powinno być o ok a tu jakieś problemy.

pierwszy komunikat :
  1. Warning: mysql_fetch_array(): supplied argument IS NOT a valid MySQL result resource IN /home/podk/public_html/proba/aktual.php ON line 10


jest wywoływany przez następujący kod :
  1. $query='SELECT * FROM aktualnosci ORDER BY data_dodania DESC LIMIT 5 ';
  2. $result = mysql_query ($query);
  3. while ($row = mysql_fetch_array($result))


Jest jeszcze jedno miejsce gdzie mam błąd, tj w momencie logowania ze strony do stron zabezpieczonych sesją. (stron admina). Tam otrzymuje taki komunikat :
  1. Warning: session_start() [FUNCTION.session-start]: Cannot send session cookie - headers already sent BY (output started at /home/podk/public_html/proba/aktual.php:11) IN /home/podk/public_html/proba/aktual.php ON line 5
  2.  
  3. Warning: session_start() [FUNCTION.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/podk/public_html/proba/aktual.php:11) IN /home/podk/public_html/proba/aktual.php ON line 5


Powyższy komunikat wywolywany jest przez następującą linike
  1. session_start();


Co mogę w tej sprawie zrobić ?
nospor
  1. <?php
  2. //...
  3. $result = mysql_query ($query) or die('Zapytanie:'.$query.'---blad:'.mysql_error());
  4. //...
  5. ?>

Zapamietaj to do konca zycia!! smile.gif Zobacz jaki blad dostaniesz

Co do drugiego:
Cos leci do przegladarki przed ustawieniem sesji. Jakas spacja? Jakies echo? Przed wyslaniem jakichkolowiek naglowkow nic nie moze pojść do przeglądarki. Gdzie dajesz to session_start() Na samym początku całości?
piano
Cenne rady nospor, dzięki. guitar.gif
Z drugą częścią Twego postu powoli sobie daje rade.

Gorzej z pierwszym tematem tzn.  Sprawdzałem kilkakrotnie czy wszystko jest ok z host (wybralem localhost), user, haslo, a pozniej nazwę bazy a na stronie caly czas otrzymuje komunikat

  1. Zapytanie:SELECT * FROM aktualnosci ORDER BY data_dodania DESC LIMIT 5 ---blad:Nie wybrano żadnej bazy danych


Czy moze to być spowodowane innymi ustawienieniami (np serwera, konfiguracji bazy danych czy php, no nie wiem...) ?
nospor
zrob to samo przy woborze bazy danych. Napisze ci wowczas jaki tam masz blad. Miales zapamietac moje rady konca zycia a juz po pieciu minutach nie pamietasz tongue.gif
piano
Ha,... niby takie proste.
Zrobiłem tak jak piszesz, w ten sposób :

  1. <?php
  2. $link =mysql_connect("localhost","users","password");
  3. mysql_select_db ("baza") OR die ('Zapytanie:'.$link.'---blad:'.mysql_error());
  4.  
  5. $query='SELECT * FROM aktualnosci ORDER BY data_dodania DESC LIMIT 5 ';
  6. $result = mysql_query($query) OR die('Zapytanie:'.$query.'---blad:'.mysql_error());
  7. while ($row = mysql_fetch_array($result))
  8. {
  9. .
  10. .
  11. }
  12. ?>


i ostrzymałem taki komunikat :
  1. Zapytanie:Resource id #2---blad:Access denied for user 'users'@'localhost' to database 'baza'


Sprawdziłem jeszcze taki kod:

  1. <?php
  2. $link =mysql_connect("localhost","users","password");
  3. $aaa=mysql_select_db ("baza") OR die ('Zapytanie:'.$aaa.'---blad:'.mysql_error());
  4.  
  5. $query='SELECT * FROM aktualnosci ORDER BY data_dodania DESC LIMIT 5 ';
  6. $result = mysql_query($query) OR die('Zapytanie:'.$query.'---blad:'.mysql_error());
  7. while ($row = mysql_fetch_array($result))
  8. {
  9. .
  10. .
  11. }
  12. ?>




i otrzymałem taki komunikat :
  1. Zapytanie:---blad:Access denied for user 'podk_users'@'localhost' to database 'podk_baza'


Kombinowałem jeszcze na inne sposoby i najczęściej miałem komunikat o braku wybrania bazy danych, tzn.
  1. Zapytanie:SELECT * FROM aktualnosci ORDER BY data_dodania DESC LIMIT 5 ---blad:Nie wybrano żadnej bazy danych



Jestem pewien że baze danych mam dobrze wpisaną. Mam wrażenie jakbym czegoś nie skonfigurował w cPanelu.
Co można jeszcz sprawdzić...?
nospor
Komunikat bledu wyraźnie mowi, ze user ktorym probujesz sie polaczyc do bazy, nie ma do niej dostepu. Proste smile.gif
piano
Ufff... Krok do przodu.
Dzięki za cierpliwość i wskazówki.
User miał dostęp do bazy ale nie do wszystkich operacji i stąd błąd. Ucze sie jeszcze obsługiwać cPanel.
Dzięki i ide spać... cool.gif
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.