0

次のエラーが表示されます。

Fatal error: Call to undefined method database::connect() in
/Applications/XAMPP/xamppfiles/htdocs/proyectoFinal/core/class.ManageDatabase.php 
on line 8

誰が何が起こっているのか知っていますか?メソッドはクラス内で定義されています。この部分が問題のようです: $this->link = $conn->connect();

クラスは次のとおりです。

<?php 

include_once('../config.php');

    class database{
        protected $db_conn;
        public $db_name = DB_NAME;
        public $db_host = DB_HOST;
        public $db_pass = DB_PASS;
        public $db_user = DB_USER;  
    }

    function connect(){
        try{
            $this->$db_conn = new PDO("mysql:host = 
                    $this->db_host;dbname=$this->db_name",
                    $this->db_user, $this->db_pass);
            return $this->db_conn;  
        }
        catch(PDOException $e)
        {
        return $e->getMessage();
        }
    }
?>

以下によって呼び出されるメソッド:

<?php
    include_once('../core/class.ManageDatabase.php');
    $init = new ManageDatabase;

    $table_name = 'persona';
    $data = $init->getData($table_name);

    print_r($data);
?>
4

2 に答える 2

1
class database{
    protected $db_conn;
    public $db_name = DB_NAME;
    public $db_host = DB_HOST;
    public $db_pass = DB_PASS;
    public $db_user = DB_USER;  
} // <-- end of class database

実際にはメソッドはありません。関数をそのメソッドの 1}つにしたい場合は、これを移動し、関数の後にのみ配置する必要があると思います。connect()

于 2013-11-10T01:30:08.613 に答える
0

クラスを閉鎖したので、次のようにします。 function connect(){ /* */ }

はオブジェクト スコープ外です。

class database{
        protected $db_conn;
        public $db_name = DB_NAME;
        public $db_host = DB_HOST;
        public $db_pass = DB_PASS;
        public $db_user = DB_USER;  
    } // Remove this and add it at the end of your class definition 

そうは言ってdatabase->connect();も、定義された方法ではありません..むしろ:

$Var = connect();

これは現在のセットアップで動作します

于 2013-11-10T01:32:01.037 に答える