2014-02-20 4 views
0

Я получаю вызов функции-функции-члена() для объекта, когда пытаюсь вызвать свою функцию. Кстати: «Похоже, ваш пост в основном код, пожалуйста, добавьте еще несколько деталей». Что я могу сказать об этом больше ... ж^Вызов функции-функции члена 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 в:

Based на твоих праведниках, твоя оценка m теперь, когда ваш класс Polacz не имеет метода query. Из вашего кода похоже, что вы пытаетесь создать обертку для объекта mysqli. Вам нужно создать метод в Polacz, который будет обертывать mysqli->query() или просто использовать объект mysqli в Uzytkownik.

+0

Я пробовал оба варианта, и они не работали. Но спасибо Тебе за то, что ты помог мне, друг. Теперь у меня есть ошибка: «Неустранимая ошибка: вызов неопределенного метода Polacz :: query() в C: \ xampp \ htdocs \ uzytkownik.php в строке 15» – 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

Не работает, mate;/Неустранимая ошибка: вызов неопределенного метода Polacz :: query() в C: \ xampp \ htdocs \ uzytkownik.php в строке 15 – bary88

+0

Я думаю, что это работает, но есть проблема с классом Lacz , Спасибо, но все равно нужна помощь. – bary88

Смежные вопросы