1.基本情况
oop写的conn连接mysql的类,系统中所有用到数据库的类来extends它。
此类部分内容见下:class db{
public $conn;
    private static $h = "localhost";
    private static $u = "root";
    private static $p = "123123";
    public $db = "wms";//此外是变化的,换句说wms不是固定的,是变化的。user1登录时,$db="user1";user2登录时,$db="user2";2.
因为$db是变化的,不是固定的。我一开始用$db=$_SESSION['user']但是类中不能用session.
请问如何实现呢?
3.
此法子除外。
$obj=new db($db);//通过析构函数。此法子不能用。因为其他原因,反正不能使用。

解决方案 »

  1.   

    1.这样完成继承链接类
    require_once 'db.php';
    class userDao extends db{}
    2.①最好不要这样设计数据库,后面拓展和维护起来很复杂,LZ需要考虑到不同的情况,最好从多个表,或者多个字段下手。
    ②session的值想传到类中处理,先经过PHP处理页面(我们一般叫他控制层),用访问类方法的方式传。
    比如:user1登录后 处理页面标记为1 在访问数据库前 把1传入类 好让他知道调用哪个数据库 不过还是建议不要把数据库设计得太复杂
    3.LZ为什么要在析构函数中实例化对象呢?一般析构函数是用来销毁对象,释放空间的。LZ要初始化对象的话,应该是在构造函数中做的。
    __construct()
      
      

  2.   


    这个不叫析构叫做构造函数
    析构是__destruct,销毁时调用的为什么反正不能用构造函数…………
    如果不行就自己写个init函数传值
    $db = new mydb();
    $db->init($dbname);
      

  3.   

    不是说了么
    自己写个init函数传值
    $db = new mydb();
    $db->init($dbname);
      

  4.   

    $obj = new db();
    $obj->db = $_SESSION['user'];既然是 public 属性,直接赋值就是了
      

  5.   

    自己写个init函数传值
    $db = new mydb();
    $db->init($dbname); 
    s