一个类中的动态MySQL表名

时间:2013-12-28 12:20:50

标签: php oop dynamic tablename

class Patient {

   protected static $table_name = "siteA";
   public $id;
   public $first_dx;
   public $confidence;
   public $second_dx;
   public $path_dx;

}

我在这里简单地展示了类属性。我在课堂上有CRUD方法,但我还没有发布它们只是为了清楚说明。在这种情况下,上面的$table_name是siteA,但是我需要让它变得动态。当用户登录我的站点时,他们的站点会保存在会话中(siteA,siteB,siteC等),我需要在此处根据登录的人员切换表名。该站点为$_SESSION['user_site'],我有试图在花括号中使用它,没有引号,引号等等,没有运气。

显然,我缺乏知识(技能)。可以这样做吗?任何帮助表示赞赏。 西蒙

1 个答案:

答案 0 :(得分:0)

class Patient {

    protected static $table_name = "siteA";
    public $id;
    public $first_dx;
    public $confidence;
    public $second_dx;
    public $path_dx;

    public function __construct(){
        self::$table_name = $_SESSION['user_site'];
    }

}

基本上,构造函数是一种神奇的方法,它将是创建对象的新实例时首先执行的操作,这是初始化值的理想选择。

您无法在属性声明中使用$_SESSION['user_site']的原因是因为它们是在会话尚不存在的编译时创建的。