Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/SQL]Problem z dziedziczeniem
Forum PHP.pl > Forum > PHP > Object-oriented programming
Que
Witam,

Klasa result dziedziczy od DB:
  1. <?php
  2. /*
  3.   * @Description: Skrypt pobierający opisy pierwszych 10 wyników z googl'a
  4.   * @Date: 27-02-2008
  5.   * @Coprything: n/a 
  6.   */
  7. class result extends DB{
  8. public $keyword;
  9. public $wynik;
  10. public $description; // opisy
  11. public $link; // url'e
  12. public $title; // tytul
  13. public $last = array(); // tablica ostatnich wynikow
  14.  
  15. function __Construct()
  16. {
  17. parent::DB('localhost', 'root', '', 'search');
  18. }
  19. (.....)
  20. function last()
  21. {
  22. $q = 'SELECT * from keywords ORDER by id DESC';
  23. $this->fetcharray($q);
  24. $this->last = $db->rekordy;
  25. return $this->last;
  26. }
  27. ?>

Mowa o konstruktorze i funkcji last()
wygląda na to że jes okay ale widze :
  1. <?php
  2. $a = new result();
  3. $a->zapytaj(\"INSERT INTO keywords VALUES ('NULL', '$keyword_d')\");
  4. ?>


zwraca:

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\WebServ\httpd-users\xxx\class\db.php on line 44

Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\WebServ\httpd-users\xxx\class\db.php on line 48

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\WebServ\httpd-users\xxx\class\db.php on line 48

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\WebServ\httpd-users\xxx\class\db.php on line 53

Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\WebServ\httpd-users\xxx\class\db.php on line 57

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\WebServ\httpd-users\xxx\class\db.php on line 57

db wyglada tak:
  1. <?php
  2. /**
  3.   * Klasa obslugi bazy danych
  4.   * @Version 1.0 Beta
  5.   * @Access public
  6.   * 
  7.   */
  8. class DB{
  9. // metody
  10. public $baza; // nazwa bazy
  11. public $wynik; // wynik zapytania SQL
  12. public $link; // zawiera polaczenie SQL
  13. public $zapytan; // zwraca ilosc wykonanych zapytan
  14. public $rekordy; // zwraca rekordy wyswietlone (SELECT)
  15. public $error; // zawiera bledy mySQL
  16. public $sql; // przechowuje zapytanie SQL
  17.  
  18. /*
  19. * Tworzenie polaczenia SQL i wybieranie bazy
  20. */
  21. function DB($host, $user, $pass, $db) // konstruktor
  22. {
  23. // proba polaczenia z baza danych
  24. $this->link = mysql_connect($host, $user, $pass, $db);
  25. $this->baza = $db;
  26. if(!$this->link)
  27. {
  28. $this->error[] = mysql_errno($this->link).':'.mysql_error($this->link);
  29. }
  30. // proba wybrania bazy
  31. $db_select = mysql_select_db($this->baza, $this->link);
  32. if(!$db_select)
  33. {
  34. $this->error[] = mysql_errno($this->link).':'.mysql_error($this->link);
  35. }
  36. }
  37. /*
  38. * Wykonywanie zapytania SQL
  39. */
  40. function zapytaj($zapytanie)
  41. {
  42. // wybieramy baze SQL
  43. $db_select = mysql_select_db($this->baza, $this->link);
  44. if(!$db_select)
  45. {
  46. // nie udalo sie wybrac bazy zapisujemy error
  47. $this->error[] = mysql_errno($this->link).':'.mysql_error($this->link);
  48. }
  49. $this->zapytan++;
  50. $this->rekordy = NULL;
  51. // zapyanie
  52. $this->wynik = mysql_query($zapytanie, $this->link);
  53. // jesli blad
  54. if($this->wynik === FALSE)
  55. {
  56. $this->error[] = mysql_errno($this->link).':'.mysql_error($this->link);
  57. return false;
  58. }
  59. else
  60. // zwracamy zapyanie
  61. {
  62. $this->sql[] = $zapytanie;
  63. return $this->wynik;
  64. }
  65. }
  66. /*
  67. * Zwracanie wynikow w posci tablicy
  68. */
  69. function fetcharray($zapytanie)
  70. {
  71. if(!$db_select)
  72. {
  73. $this->error[] = mysql_errno($this->link).':'.mysql_error($this->link);
  74. }
  75. $this->rekordy = NULL;
  76. $this->zapytaj($zapytanie);
  77. while($wiersz = mysql_fetch_array($this->wynik, MYSQL_ASSOC))
  78. {
  79. $this->rekordy[] = $wiersz;
  80. }
  81. }
  82. /*
  83. * Zwalnianie zasobow pamieci
  84. */
  85. function zwolnij()
  86. {
  87.  @mysql_free_result($this->link);
  88. }
  89. /*
  90. * Zamykanie polaczenia SQL
  91. */
  92. function zamknij()
  93. {
  94.  @mysql_close($this->link);
  95. }
  96.  
  97. }
  98. ?>
Kicok
Cytat
if(!$this->link)
{
$this->error[] = mysql_errno($this->link)


Z tego co wiem to mysql_error" title="Zobacz w manualu PHP" target="_manual nie lubi gdy mu się w parametrze false przesyła ;]
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.