2014-02-20 63 views
0

當我嘗試調用我的函數時,我得到了對非成員函數的成員函數query()的調用。 btw:「看起來你的文章主要是代碼,請添加一些更多細節。」我可以告訴更多關於它的XD ...調用成員函數查詢oop

我的代碼如下所示:

class Uzytkownik { 

    public function loguj($nazwa_uz_l, $haslo_l) { 

     require('funkcje_bazy.php'); 

     //$lacz = lacz_bd(); 
     $this->lacz = new Polacz('localhost', 'root', '', 'lupo24_db');  

     $nazwa_uz_l = trim($_POST['nazwa_uz_l']); 
     $haslo_l = trim($_POST['haslo_l']); 

     $this->lacz->query("SELECT * FROM uzytkownicy WHERE email='". $this->lacz->real_escape_string($nazwa_uz_l) ."' AND haslo = '". $this->lacz->real_escape_string($haslo_l) ."' AND aktywacja IS NULL ");   

     if($this->lacz->num_rows>0) 
     { 
      $_SESSION['prawid_uzyt'] = $nazwa_uz_l; 
     } 
     else 
     { 
      echo 'Logowanie sie nie powiodlo.'; 
     } 
    } 
} 

funkcje_bazy.php:

class Polacz { 

public function __construct($domena, $uzytkownik, $haslo, $baza) { 

    $domena; 
    $uzytkownik; 
    $haslo; 
    $baza; 

    $this->lacz = new mysqli($domena, $uzytkownik, $haslo, $baza); 

    if ($this->lacz->connect_errno) { 
     echo "Nie mozna sie polaczyc z MySQL: (" . $this->lacz->connect_errno . ") " . $this->lacz->connect_error; 
    } 

    if($this->lacz == true) 
    { 
     echo 'Polaczono. '; 
     return $this->lacz; 
    } 
    else 
    { 
     echo 'Brak polaczenia z baza. '; 
     return false; 
    } 

    $this->lacz->close(); 
} 

}

和錯誤:

Polaczono. 
Fatal error: Call to undefined method Polacz::query() in C:\xampp\htdocs\uzytkownik.php on line 15 

回答

4

您的課程不具有財產lacz

變化:

$lacz = new Polacz('localhost', 'root', '', 'lupo24_db'); 

到:

$this->lacz = new Polacz('localhost', 'root', '', 'lupo24_db'); 

或者,你可以改變所有的$this->lacz$lacz

UPDATE:

基礎的在你的編輯上,你的問題m現在你的Polacz類沒有方法query。從你的代碼看起來你正在試圖爲mysqli對象創建一個包裝器。你需要在Polacz中創建一個方法來包裝mysqli->query()或者只是在Uzytkownik中使用mysqli對象。

+0

我試過這兩個選項,但這些都不起作用。但是,謝謝你試圖幫助我,朋友。現在我有一個錯誤:「致命的錯誤:調用未定義的方法Polacz ::查詢()在第15行C:\ xampp \ htdocs \ uzytkownik.php」 – bary88

+0

我認爲它的工作,但有Lacz問題類。謝謝,但仍需要幫助。 – bary88

0
$lacz->query("SELECT * FROM uzytkownicy WHERE email='". $lacz->real_escape_string($nazwa_uz_l) ."' AND haslo = '". $lacz->real_escape_string($haslo_l) ."' AND aktywacja IS NULL "); 
+0

不工作,隊友; /致命的錯誤:調用未定義的方法Polacz ::查詢()在C:\ xampp \ htdocs \ uzytkownik.php 15行 – bary88

+0

我認爲它的工作,但有一個Lacz類的問題。謝謝,但仍需要幫助。 – bary88

相關問題