Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem ze sterownikiem mysql.
Helid
post 11.02.2008, 15:43:03
Post #1





Grupa: Zarejestrowani
Postów: 280
Pomógł: 20
Dołączył: 12.12.2007
Skąd: 127.0.0.1

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


Ucząc się klas w php na podstawie arta z webcity.pl
Napisałem coś takiego:
  1. <?php
  2. //Dane do połączenia
  3. $db_host = 'sql.boo.pl';
  4. $db_user = 'helid';
  5. $db_pass = '****';
  6. $db_name = '****';
  7.  
  8.  class sql{
  9. private $link;
  10. private $result;
  11. public $rows;
  12.  public function __construct(){ // 1
  13.  echo 'Wywołanie konstruktora<br/>';
  14.  $this->link = mysql_connect("$db_host", "$db_user", "$db_pass");
  15. mysql_select_db("$db_name", $this->link);
  16. } // koniec __construct();
  17.  public function __destruct(){ // 2
  18.  echo 'Wywołanie destruktora<br/>';
  19.  if($this->link) {
  20. mysql_close($this->link);
  21. }
  22. } // koniec __destruct();
  23.  public function query($query){
  24.  $this->result = mysql_query($query, $this->link);
  25.  } // koniec query();
  26.  public function fetch_row(){
  27.  if($this->rows = mysql_fetch_row($this->result)){
  28. return 1;
  29.  }
  30. } // koniec fetch_row();
  31.  }
  32. $sql = new sql; 
  33. echo 'Zawartość bazy "test":<ul>';
  34. $sql->query('SELECT * FROM users WHERE login = "helid" ');
  35.  while($wiersz = mysql_fetch_array($sql->query)){
  36. echo "<li>".$wiersz['id']."</li>";
  37.  }
  38.  echo '</ul>';
  39. ?>

Adres:http://www.phpbb3.boo.pl/sql.php
Samie zobaczcie treśc błędu.
Bo dużo już tu namieszałem sciana.gif


--------------------
Go to the top of the page
+Quote Post
splatch
post 11.02.2008, 15:49:50
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


[ot]A nie zapomniałeś o globalexclamation.gif? ;P[/ot]


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
Helid
post 11.02.2008, 15:54:28
Post #3





Grupa: Zarejestrowani
Postów: 280
Pomógł: 20
Dołączył: 12.12.2007
Skąd: 127.0.0.1

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


Możesz jaśniej?


--------------------
Go to the top of the page
+Quote Post
-=Peter=-
post 11.02.2008, 16:19:26
Post #4





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


Z tego co widze, to powinieneś się najpierw podstaw nauczyć...

Powiedz mi co to za atrybut:
  1. <?php
  2. $sql->query
  3. ?>


Raczej nie masz go w definicji klasy, metoda query powinna zwracać zasób, czyli ta metoda powinna wyglądać przykładowo tak:

  1. <?php
  2. public function query($query){
  3.  $this->result = mysql_query($query, $this->link);
  4.  return $this->result;
  5. }
  6. ?>


a wykorzystanie:

  1. <?php
  2. $blebleble = $sql->query('SELECT * FROM users WHERE login = "helid" ');
  3.  while($wiersz = mysql_fetch_array($blebleble)){
  4. echo "<li>".$wiersz['id']."</li>";
  5.  }
  6. ?>


Ten post edytował -=Peter=- 11.02.2008, 16:22:26


--------------------
Go to the top of the page
+Quote Post
splatch
post 11.02.2008, 18:05:57
Post #5





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


Metoda query nie zwraca wskaźnika na result, zatem po przypisaniu do jakiejkolwiek zmiennej będzie to null.
  1. <?php
  2. $sql->query('...');
  3. while ($sql->fetch_row()) {
  4. echo $sql->rows['id'];
  5. }
  6. ?>


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
Helid
post 12.02.2008, 14:14:46
Post #6





Grupa: Zarejestrowani
Postów: 280
Pomógł: 20
Dołączył: 12.12.2007
Skąd: 127.0.0.1

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


Eh, coś jeszce nie tak dry.gif
Zrobiłem tak jak kazaliście.
A propo podstawy umiem, tutaj są klasy w które jak mówiłem wchodze i mam problemy.
http://www.phpbb3.boo.pl/sql.php
  1. <?php
  2. //Dane do połączenia
  3. $db_host = 'sql.boo.pl';
  4. $db_user = 'helid';
  5. $db_pass = 'jakub';
  6. $db_name = 'phpbb3';
  7.  
  8.  class sql{
  9. private $link;
  10. private $result;
  11. public $rows;
  12.  public function __construct(){ // 1
  13.  echo 'Wywołanie konstruktora<br/>';
  14.  $this->link = mysql_connect("$db_host", "$db_user", "$db_pass");
  15. mysql_select_db("$db_name", $this->link);
  16. } // koniec __construct();
  17.  public function __destruct(){ // 2
  18.  echo 'Wywołanie destruktora<br/>';
  19.  if($this->link) {
  20. mysql_close($this->link);
  21. }
  22. } // koniec __destruct();
  23.  public function query($query){
  24.  $this->result = mysql_query($query, $this->link);
  25.  return $this->result;
  26. } // koniec query();
  27.  public function fetch_row(){
  28.  if($this->rows = mysql_fetch_row($this->result)){
  29. return 1;
  30.  }
  31. } // koniec fetch_row();
  32.  }
  33. $sql = new sql; 
  34. echo 'Zawartość bazy "user":<ul>';
  35. $sql->query('SELECT * FROM users WHERE login = "helid"');
  36. while ($sql->fetch_row()) {
  37. echo $sql->rows['id'];
  38. }
  39.  
  40.  echo '</ul>';
  41. ?>


--------------------
Go to the top of the page
+Quote Post
mandragorek
post 13.02.2008, 04:39:17
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 2
Dołączył: 9.03.2007

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


Sugerowałbym zmianę hasła do bazy danych. winksmiley.jpg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 13:54