-5

このエラーが発生しています

Fatal error: Non-static method Connect::connect() cannot be called statically in D:\xampp\htdocs\Panel\core\init.php on line 63

これが私のコードです

<?php
class Connect{
    public $db_host = "localhost";
    public $db_user = "root";
    public $db_pass = "";
    public $db_name = "panel";

    public function connect(){
            if(mysql_connect($db_host, $db_user, $db_pass)){
                    if(mysql_select_db($db_name)){
                            return true;
                    }else{
                            die(mysql_error());
                    }
            }else{
                    die(mysql_error());
            }
            return false;
    }
}
?>

関数を静的にするにはどうすればよいですか? 関数スコープに「static」を追加してみましたが、別のエラーが発生しました

ありがとう :)

4

3 に答える 3

4

パラメータとして関数に変数を渡す必要があります

function connect($db_host, $db_user, $db_pass,$db_name)

そして、この関数を次のように呼び出します

connect($db_host, $db_user, $db_pass,$db_name);

編集

ペーストビンを見ると、クラス変数を呼び出しているので、$this->variale_nameそれらにアクセスするために使用する必要があります。

<?php
class Connect{
    public $db_host = "localhost";
    public $db_user = "root";
    public $db_pass = "";
    public $db_name = "panel";

    public function connect(){
            if(mysql_connect($this->db_host, $this->db_user, $this->db_pass)){
                    if(mysql_select_db($this->db_name)){
                            return true;
                    }else{
                            die(mysql_error());
                    }
            }else{
                    die(mysql_error());
            }
            return false;
    }
}
?>

PDO

<?php
class Connect{
    private $db_host = "localhost";
    private $db_user = "root";
    private $db_pass = "";
    private $db_name = "panel";
    private $dbh = false;
    public function connect(){
        if ($this->dbh === false)
            $this->dbh = new PDO('mysql:host='.$this->db_host.';dbname='.$this->db_name, $this->db_user, $this->db_pass);
        return $this->dbh;
    }
}
?>
于 2013-06-28T04:47:17.417 に答える