0

$st_id以下に示すように、mvc プロジェクトのモデル クラスの関数を使用したいのですが$st_id、定義されていないエラーが発生します。この問題を解決するために何ができますか?

<?php

@session_start();
$st_id=$_SESSION['username'];
if (!isset($_SESSION['USERNAME']))
{
header('Location: signin.php');
}
//////////////////////    
class model
{
    private $result;
    public $rp_result;
    //////////
    public function exe_query()
    {
        $mysqldb = new MySQLDatabase();
        $result=$mysqldb->query('CALL view_report('.$this->st_id.');');
        $this->rp_result=$mysqldb->fetch_all($result);
    }
}   
?>
4

3 に答える 3

2

モデルをどのように呼びますか?

私はあなたをお勧めします:

class model
{
    private $result;
    public $rp_result, $st_id;

    public function __construct($st_id)
    {
        $this->st_id = $st_id;
    }

    public function exe_query()
    {
        $mysqldb = new MySQLDatabase();
        $result=$mysqldb->query('CALL view_report('.$this->st_id.');');
        $this->rp_result=$mysqldb->fetch_all($result);
    }
}

そして今、あなたは使うことができます:

@session_start();
$st_id=$_SESSION['username'];
if (!isset($_SESSION['USERNAME']))
{
    header('Location: signin.php');
}

$model = new model($st_id);
$model->exe_query();
于 2012-08-01T13:23:02.840 に答える
1

で使用している場合は、クラス内で宣言する必要があります$this

class model {
    public $st_id;

    public function __construct() {
        @session_start();
        $this->st_id = $_SESSION['username'];
    }

    public function exe_query()
    {
        $mysqldb = new MySQLDatabase();
        $result=$mysqldb->query('CALL view_report('.$this->st_id.');');
        $this->rp_result=$mysqldb->fetch_all($result);
    }
}
于 2012-08-01T13:22:15.257 に答える
0

として直接呼び出さないのはなぜ$_SESSION['username']ですか?すでに世界的な…

于 2012-08-01T13:24:19.763 に答える