du127953 2014-02-20 21:28
浏览 55

调用成员函数查询oop

I'm getting the Call to a member function query() on a non-object when I try to call my function.

My code looks like this:

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();
    }
}

And the error:

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

2条回答 默认 最新

  • dongxiezhi0590 2014-02-20 21:34
    关注

    Your class doesn't have a property lacz

    Change:

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

    to:

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

    Alternatively, you could change all the $this->lacz to $lacz

    UPDATE:

    Based on your edits, your problem is now that your Polacz class does not have a method query. From your code it looks like you are trying to create a wrapper for the mysqli object. You need to create a method in Polacz that will wrap the mysqli->query() or just use the mysqli object in Uzytkownik.

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序