Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Brak odwołania(?)
Forum PHP.pl > Forum > PHP > Object-oriented programming
serv
Witam!

Mam taki pliczek...(fragment)
  1. <?php
  2. $sql = "SELECT `date_registration` FROM `user` WHERE `active` = 0";
  3. $query = $db -> query_sql($db -> db_sql = $sql);
  4. while($row = $db -> fetcharray_sql($query)) {
  5. //...
  6. }
  7. ?>


Na początku tego pliku jeszcze jest takie coś

  1. <?php
  2. require ('../action/sql.php');
  3. ?>


Kawałek odpowiedzialnego pliku sql.php ma się tak:

  1. <?php
  2. class sql {
  3.      
  4.       var $db_config;
  5.       var $db_sql;
  6.       var $row = array();
  7.      
  8.      
  9.       function connection(){
  10.              
  11.              if (!empty($this->db_config['pass'])) {
  12.                     $connect = mysql_connect($this->db_config['host'].':'.$this->db_config['port'], $this->db_config['user'], $this->db_config['pass'])
  13.                            or die('ERROR: Nie można połączyć się z bazą '. mysql_error().'<br />'.$connect);
  14.                     $db_select = mysql_select_db($this->db_config['dbname'])
  15.                            or die('ERROR: Nie można wybrać bazy danych '.mysql_error().'<br />'. $db_select);
  16.                     $coding = mysql_query('SET CHARSET '.$this->db_config['coding']);
  17.              }
  18.       }
  19.  
  20.  
  21.  
  22. (...)
  23.  
  24.  
  25.  
  26. function query_sql(){
  27.              
  28.              $this->connection();
  29.              
  30.              $result = mysql_query($this->db_sql)
  31.                     or die('ERROR: Nie można  wykonać zapytania: <br />'.mysql_error().'<br />'. mysql_errno().'<br />'.$this->db_sql);
  32.              
  33.              if($result == true){
  34.                    
  35.                     return $result;      
  36.                    
  37.              } else {
  38.                     return false;
  39.              }
  40.              $this->disconnect($connect);
  41.       }
  42. ?>


Wszystko łączy się z powodzeniem ale po otworzeniu pierwszego pliku wyskakuje komunikat...
Cytat
Fatal error: Call to a member function query_sql() on a non-object in (.......)shleuder\users.php on line 13


A w 13 linijce tego kodu znajduje się:
  1. <?php
  2. $query = $db -> query_sql($db -> db_sql = $sql);
  3. ?>


Czemu skrypt nie działa?

Pozdrawiam!
zzeus
W klasie sql brakuje Ci konstruktora, poza tym przed wywołaniem metody z klasy musisz utworzyć jej instancję
Jeśli używasz php5 to
  1. <?php
  2. class sql
  3. {
  4. public function __construct()
  5. {
  6.  
  7. }
  8.  
  9. ...
  10. }
  11. ?>

Jeśli php4 to
  1. <?php
  2. class sql
  3. {
  4. function sql()
  5. {
  6.  
  7. }
  8.  
  9. ...
  10. }
  11. ?>


  1. <?php
  2. $db = new sql();
  3. $db -> query_sql();
  4. ?>
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.