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 回答