Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z klasa do obslugi MySQL
Forum PHP.pl > Forum > PHP
AvantaR
  1. <?php
  2.  
  3. error_reporting(E_ALL ^ E_NOTICE);
  4.  
  5. class MySQL{
  6. var $resource;
  7. var $result;
  8. var $dane;
  9.  
  10. function __construct(){
  11. $this -> resource = mysql_connect('mysql.yoyo.pl','avantar','***') or die("nie udało się");
  12. mysql_select_db('avantar',$this -> resource);
  13. }
  14.  
  15. function __destruct(){
  16. if(is_resource($this -> resource)){
  17. mysql_close($this -> resource);
  18. }
  19. }
  20.  
  21. function rozlacz(){
  22. if(is_resource($this -> resource)){
  23. mysql_close($this -> resource);
  24. }
  25. }
  26.  
  27. function query($query){
  28. $this -> result = mysql_query($query,$this -> resource) or die("Błąd w czasie wysyłania kwerendy");
  29. }
  30.  
  31. function num_rows(){
  32. if(mysql_num_rows($this -> result) > 0){
  33. echo mysql_num_rows($this -> result);
  34. return 1;
  35. }
  36. }
  37.  
  38. function fetch_row(){
  39. if($this -> dane = mysql_fetch_array($this -> result)){
  40. return 1;
  41. }
  42. }
  43. }
  44.  
  45. ?>


Mam taki oto kod. Na mojej lokalnej maszynie nie ma zadnych problemow z uzywaniem tej klasy. A gdy na serwerze jakims zrobie
  1. <?php
  2. $sql = new MySQL;
  3. $sql -> query("SELECT * FROM redaktorzy");
  4. ?>

To wywala mi :
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /var/www/sites/yoyo.pl/p/o/podgore/class.php on line 29
Błąd w czasie wysyłania kwerendy

Juz nie wiem co zrobic :/
Na localhoscie nie mam hasla na konto, na serwerze mam - czy to moze miec jakis wplyw (oczywiscie haslo wpisuje).

Pozdrawiam i z gory dziekuje za pomoc smile.gif
nospor
zamiast tak: or die("Błąd w czasie wysyłania kwerendy");
pisz: or die(mysql_error());
a bedziesz wiedzial co jest nie tak

i popraw tytul bo "Problem z Mysql" to zes sie nie wysilil smile.gif
AvantaR
Zrobilem tak jak mowiles i wywala tylko tego warninga :
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /var/www/sites/yoyo.pl/p/o/podgore/class.php on line 29

A najsmieszniejsze jest wlasnie to, ze na localhoscie wszystko mi dziala sad.gif
nospor
wydaje sie, ze $this -> resource nie jest resourcem do bazy.
dodaj to co ci mowilem: or die(mysql_error()) do kazdego wykonana funkcji mysql_....

a jeszcze zapytam:
a serwer na ktorym to uruchamiasz, to jaka wersje php posiada? Bo jak php4 to nie ma co sie dziwic winksmiley.jpg
na php4 takie wywolanie konstruktora ci nie zadziala. w php4 konstruktor jest to normalna funkcja, o nazwie takiej jak nazwa klasy. a skoro nie wykonuje sie konstruktor to i nie wykonuje sie polaczenie do bazy przez co $this -> resource jest nullem
AvantaR
No to sie chyba wyjasnilo ...
Na jednym serwerze na, ktorym probowalem jest 4.3.11, a na drugim nie moge sprawdzic, ale pewnie tez jakis stary :/

Pzdr
nospor
Do sprawdzenia sluzy metoda: phpinfo().

Jesli chcesz by Twoja klasa w tej postaci chodzila i tu, itu to dopisz taką metodę:
  1. <?php
  2. function MySQL(){
  3. $this->__construct();
  4. }
  5. ?>
smile.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.